2017-02-26 6 views
1

Auth::user()->idを使用して質問テーブルにuser_idを「外部キー」として挿入しようとしています。ユーザモデルの関係としてユーザIDを保存するにはどうすればよいですか?

マイモデル:

public function user(){ 
     return $this->belongsTo('App\User'); 
    } 
    //saves post 
    public function saveQuestion(buildQuestion $buildQuestion, $userId){ 
     $buildQuestion->user_id = $userId; 
     return $this->user()->save($buildQuestion); 
    } 

マイコントローラ:

public function submitQuestion(Request $request,buildQuestion $buildQuestion){ 

     $answers = new buildQuestion($request->all()); 


     if (Auth::user()){ 

      $buildQuestion->saveQuestion($answers, Auth::user()->id); 

     }else if(Auth::guest()){ 
      abort (403, 'Not Logged In'); 

     } 
    } 

私は私がモデルにパラメータとしてbuildQuestionを渡すことになってるとは思いません。私は、フォームを送信したとき、私はこのエラーを取得してい

:\未定義のメソッドを照らし\データベースにクエリ\ Builderを呼び出します::セーブ()

+1

あなたは定義することは避けてくださいモデル内のsave関数それはコントローラに行くべきです。リレーション、ミューテータなどを定義するモデルを使用しますが、コントローラのタスクは定義しません –

答えて

0
Class BuildQuestion{ 
    public function user(){ 
     return $this->belongsTo('App\User'); 
    } 
... 

    Class User{ 
    public function buildQuestion(){ 
     return $this->hasMany('App\BuildQuestion'); 
    } 
... 

コントローラ

public function submitQuestion(Request $request){ 

    $answers = new buildQuestion($request->all()); 


    if (Auth::user()){ 

     Auth::user()->buildQuestion()->create($answers); 

    }elseif(Auth::guest()){ 
    //suggestion redirect to login page 
    //return redirect('/login'); 
     abort (403, 'Not Logged In'); 

    } 
}  
関連する問題