【发布时间】:2016-10-21 23:20:36
【问题描述】:
这就是我试图做的没有任何成功:
在welcome.blade 中,我有一个带有一些板子和子板(由用户随机生成)的foreach,您可以在其中单击子板并执行类似/subboardOne 的操作。我在我的 routes.php 上得到了这个
Route::get('/{subboaName}', 'ThreadController@index');
Route::post('/{subboaName}', 'ThreadController@store');
然后你可以通过表单在这个子板上发布一个帖子,但是因为我真的不知道 laravel 是如何知道他在哪里的,所以表单是这样的:
<form class="form col-md-12 center-block" role="form" method="POST" action="/{{$subboardcoll->id}}">
这个 $subboardcoll->id 来自控制器,它通过索引函数发送集合:
public function index($subboard)
{
$subboardcoll = Subboard::where('subboaName', $subboard)->first();
$threads = Thread::where('subboaId', $subboardcoll->id)
->orderBy('created_at', 'desc')
->get();
return view('threads.thread', compact('threads', 'subboardcoll'));
}
然后我尝试发送我的表单并存储自动插入 subboardId 的线程,但 laravel 无法识别 subboards 方法:
public function store(Request $request)
{
$this->validate($request, [
'comentario' => 'required|max:2000',
//'g-recaptcha-response' => 'required|recaptcha',
//'imagen' => 'required',
]);
$request->subboards()->threads()->create([
'thrName' => $request->nombre,
'thrComment' => $request->comentario,
'thrImg' => $request->imagen,
'thrSubject' => $request->tema,
]);
return redirect()->back();
}
并给我这个错误:
BadMethodCallException in Macroable.php line 81: Method subboards does not exist.
你们能帮我知道为什么吗?还有更好的形式来做我正在尝试的事情吗?我是 laravel 的新手,谢谢
编辑:
线程.php
public function subboard()
{
return $this->belongsTo(Subboard::class, 'subboaId');
}
子板.php
public function thread()
{
return $this->hasMany(Thread::class);
}
【问题讨论】:
标签: laravel-5 eloquent laravel-routing