2017-07-20 9 views
0

ここに私のコントローラコードです。誰か助けてくれますか?プライマリテーブルIDを取得するにはどうすればいいですか?私は私が主テーブルのIDを取得することができますどのようにすべてのフィールドは、コントローラのコードにここに示された記事と呼ばれる1つのIDとセカンダリテーブルと主テーブル(関係が主キーと外部キーの関係です)私はプライマリテーブルのIDを取得したいが、nullを取得し、非オブジェクトのプロパティを取得しようとしている

public function store(Request $request) 
 
    { 
 

 
     $article = new Article; 
 

 
     $article->user_id = Auth::user()->id; 
 
     $article->content = $request->content; 
 
     $article->live = (boolean)$request->live; 
 
     $article->post_on = $request->post_on; 
 
     dd($article->user_id); 
 
     $article->save(); 
 

 
    // Article::create($request->all()); 
 
    }

を持っています
+2

このプライマリテーブルは正確には何ですか?これはこれに関連するテーブルですか?このIDはどこから来るべきですか? – Jerodev

+0

これはプライマリキーがidで、そのプライマリテーブルから来たユーザーテーブルです(プライマリテーブルはユーザー、セカンダリテーブルはuser_idが外部キーです)。プライマリテーブルユーザーに関連するユーザーモデルがあります。 – Khalid

+0

'dd(Auth :: user())'しようとしましたか?何を手に入れましたか? – dexterb

答えて

0

逆の関係を作成する必要があります。その商品をUserモデルに帰属させるArticleモデルのbelongsTo

https://laravel.com/docs/5.4/eloquent-relationships#one-to-one

は関係セクションの逆の定義を参照してください。

次に、$article->user->idのようなことができます。

関係が既に定義されている場合は、save()メソッドの後に$article->fresh('user')を使用してください。

+0

問題解決済み::問題のユーザーIDを取得するには、ログインする必要があります。あなたがログインしているとき、Auth :: user() - > idはユーザーIDを返します。そうでなければ、非オブジェクトまたはnullの戻り値のプロパティを取得しようとするとエラーを表示します。 – Khalid

関連する問題