laravel 5.2クエリを使用してテーブルに新しい行を作成しようとしています。Laravelクエリで複数の値を渡す方法
マイテーブル "答え" 5 columns->answer_id (auto_inc), people_id(sames as Auth::id), question_id('Integer'), answer(input field), created_at(timestamp())
answercontrollerファイルがあります:私は答えに新しい行を追加することができないんだ
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Auth;
use App\Http\Requests;
class answerController extends Controller
{
public function store(Requests\answerAddRequest $request)
{
Auth::user()->questions('question_id')->answers()->create($request->all());
}
}
答えモデルクラス
class answers extends Model
{
protected $table='answers';
protected $fillable='answer';
protected $primaryKey='answer_id';
public function setUpdatedAtAttribute($value) {}
public function User()
{
return $this->belongsTo('App\User');
}
public function questions()
{
return $this->belongsTo('App\questions','people_id');
}
}
を私は理解できないので、テーブルにquestion_idを渡すことができます
の質問モデルクラス
class questions extends Model
{
protected $table='questions';
protected $primaryKey='question_id';
protected $fillable = [
'question', 'created_at','details'
];
//protected $hidden=['question_id'];
public function setUpdatedAtAttribute($value) {}
public function User() {
return $this->belongsTo('App\User');
}
public function answers()
{
return $this->hasMany('App\answers','answer_id');
}
public function scopefetchQuestions($query) {
return $query->select('question','question_id')->where('people_id','=',Auth::id())->get();
}
}
現在のコードでこのエラーを投げています:私はそれを修正するにはどうすればよい
BadMethodCallException in Builder.php line 2405:
Call to undefined method Illuminate\Database\Query\Builder::answers()
?
あなたが実際に質問(「question_id」)でquestion_idを入れているか、あなただけのようにすることを持っているかに外部キーを追加文字列? – Crawdingle
'question_id'は 'questions'テーブルの列です –