我正在使用laravel 5.5和andersao / l5-repository。我想在问题库中添加答案记录。
我的问题控制器
protected $repository;
public function __construct(QuestionRepository $repository)
{
$this->repository = $repository;
}
public function add_answer(AnswerAddRequest $request)
{
$this->validator->with($request->all())->passesOrFail(ValidatorInterface::RULE_CREATE);
$question = $this->repository->answer->create([
'content' => 'Answer text question',
'user_id' => Auth::user()->id
]);
return question;
}
我的问题模型
public function answer()
{
return $this->belongsTo(Answer::class, 'question_id');
}
我试过' $ this-> repository-> answer()'
始终错误:未定义属性
我认为我必须使用with()方法,但我不想采取所有内容。我只需要添加模型关系的内容。
答案 0 :(得分:0)
您应该添加此部分代码
public function answer()
{
return $this->belongsTo(Answer::class, 'question_id');
}
进入问题模式,而不是进入您的存储库。 Laravel Eloquent类扩展了Model类,它具有您正在使用的belongsTo等方法。
---编辑---
如果您想使用存储库,可以将其与Eloquent集成:
$this->reposotiry->find($request->input('question_id'))->answer()->create([
'content' => 'Answer text question',
'user_id' => Auth::user()->id
]);