【发布时间】:2017-09-28 21:10:40
【问题描述】:
我想创建一个包含许多调查的问题。在问题模型中:
public function surveys()
{
return $this->belongsToMany(Survey::class, 'survey__surveyquestions');
}
并在控制器中保存新问题时:
private $questions;
public function __construct(QuestionsRepository $questions)
{
parent::__construct();
$this->questions = $questions;
}
public function store(Request $request)
{
$this->questions->create($request->all());
$this->questions->surveys()->attach($request->surveys);
return redirect()->route('admin.survey.questions.index')
->withSuccess(trans('core::core.messages.resource created', ['name' => trans('survey::questions.title.questions')]));
}
但是当它到达附加行时我收到以下错误:
(1/1) FatalErrorException 调用未定义的方法 Modules\Survey\Repositories\Eloquent\EloquentQuestionsRepository::surveys()
我注意到错误提到了EloquentQuestionsRepository,但我没有在其中添加任何方法,所以它只是一个空类:
class EloquentQuestionsRepository extends EloquentBaseRepository implements QuestionsRepository
{
}
问题存储库:
interface QuestionsRepository extends BaseRepository
{
}
【问题讨论】:
-
根据你的代码,可以试试
$question = $this->questions->create($request->all());$question->surveys()->attach($request->surveys); -
EloquentBaseRepository长什么样子? -
@HanlinWang 回复是
(1/1) BadMethodCallException Call to undefined method Illuminate\Database\Query\Builder::surveys() -
@Maraboc 这是 AsgardCMS 中的默认设置,所以github.com/AsgardCms/Core/blob/master/Repositories/Eloquent/…
-
能否也显示 QuestionsRepository 的代码?