私のデータベースの2つのテーブル間の関係を維持しようとしています。Eloquent hasOne relationship Not working laravel 5.4
ユーザー表:
Id User_id Name
コンタクト表:
Id User_Id contacts
私は連絡先テーブル内の複数の連絡先を保存しています。今私はUser_IDに保存されているすべての連絡先を取得したい。そのために、私はhasOneの関係を確立しようとしていますが、次のコードでエラーが発生します。誰かが私に間違っていることを教えてもらえますか?私はこれについての公式の文書に従っています。
Userモデル:
class users extends Model
{
protected $table = "users";
public function contacts()
{
return $this->hasOne('App\contacts','User_Id');
}
}
コンタクトモデル:
class contacts extends Model
{
public $table = "contacts";
public function Users(){
return $this->belongsTo('App\Users','User_id');
}
}
コントローラ:私は郵便配達にこのコードをしようとすると
public function eloquentget(){
$contacts = Users::find(1)->contacts->first();
return response()->json($contacts,200);
}
私は例外を取得:
ErrorException
Trying to get property of non-object
何が間違っていますか?どんな助けもありがとう。
usersテーブルに「id」と「User_Id」の両方があるのはなぜですか?また、名前の選択や非標準のケースでは、Laravelの推奨事項w.r.tに従うことを検討する必要があります。命名 – apokryfos
コードが動作したら、https://codereview.stackexchange.com/の人がそれを実行して、@apokryfosの示唆している命名規則とテーブル構造をフィードバックすることができます。あなたの人生を将来容易にするためには、おそらくあなたが変えるべきことがいくつかあります。 –
連絡先テーブルのIDを使用して、別個の連絡先を編集しています。私は同じuser_idを使用してそれらの複数を持っている。 – Prakash