2017-12-09 18 views
0
nullを

返しますそれを行う:Laravel雄弁belongsToの関係は、私は2つの雄弁のモデルを持っている

$posts = Post::get(); 

foreach($posts as $key){ 
    dd($key->product); 
} 
dd($key->product()); は私が製品を取得するが、私は enter image description here

は、しかし、私は私が必要whant使用するようなものを取得する必要があることに使用することはできません:私はこのように行う場合には、このよう

は、それがNULL 返し

enter image description here

+0

productsテーブルに 'post_id'カラムがありますか?それが'の投稿に外部キーがない場合は、投稿モデル – linktoahref

+0

@linktoahrefの 'product'メソッドの第2引数として外部キー名を' posts'テーブルに 'product_id'があります。 'Post'で' fillable' – lagbox

答えて

1

例、foreginキーとの関係で他のキーを指摘してください:

public function post() 
{ 
    return $this->belongsTo('App\Post', 'foreign_key', 'other_key'); 
} 

public function user() 
{ 
    return $this->belongsTo('App\User', 'foreign_key', 'other_key'); 
} 

詳細:https://laravel.com/docs/5.5/eloquent-relationships

+0

私はこれを試して、dosntの仕事です:/ – haisom

+0

は動作するはずです。 other_keyでforegin_keyを変更してみてください。私はその問題がその点にあると確信しています。 –

+0

今すぐ使えますか? –

0

おそらく、関係はデータベースに存在しません。

Postfillableアレイに基づいて、キーの命名規則に従っているため、リレーションシップのセットアップ方法が正しいように見え、belongsToリレーションシップメソッドの名前は正しいものになります。

$post->product()Productモデルを返送していません。 Relationタイプのオブジェクト(BelongsTo)を返しています。これは、関係を照会するために使用されます。 $post->productは、既にロードされたリレーションシップを返すリレーションシップの動的プロパティ、またはリレーションシップをロードして結果を返すリレーションシップの動的プロパティになります。

Laravel 5.5 Docs - Eloquent - Relationships - Relationship Methods Vs. Dynamic Properties

関係が設定されている場合、正しく$post->productnullであることは関係が実際にproduct_idまたはproduct_idためproductsには一致idがnullであることなく、データベースに存在しません意味します。熱心な関係をロードする良いでしょう:

サイドノートが(外部キー制約を想定していない)

$posts = Post::with('product')->get(); 
+0

私はそれがまだNULLであることを試みます、私はDBに私の問題を持っていると思うかどうか教えてください:/ tahnks – haisom

+0

関係はデータベースに存在しません – lagbox

0

私は= 1 IDでDB製品に持っていけない 私の問題が見つかりました:/ stuped problem

私はすべての助けてくれてありがとうleranからu。