使用Laravel

时间:2018-04-13 12:55:28

标签: laravel repository laravel-5.5

我正在使用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()方法,但我不想采取所有内容。我只需要添加模型关系的内容。

1 个答案:

答案 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
]);