我正在尝试使用单个匹配的控制器来显示和验证表单。我不确定这是否真的可行,因为我没有成功。
由于某种原因,它甚至不会显示初始视图 - 它只是进入302重定向循环然后超时。
有人能说明为什么会这样做,以及我如何解决它?我不想创建更多的路由和方法,因此match
而不是单独的get
和post
,有两个独立的控制器方法。
我的路线
Route::match(['get', 'post'], '/tracking', [
'as' => 'tracking',
'uses' => 'Tracking@index'
]);
我的控制器
use App\Http\Requests\TrackingRequest;
class Tracking extends Controller {
public function index(TrackingRequest $request) {
return view('tracking.index');
}
}
我的确认
class TrackingRequest extends Request
{
public function authorize() {
return true;
}
public function messages()
{
return [
'reference.required' => 'Please enter a reference number.',
'reference.numeric' => 'Please enter a valid reference number.',
'reference.digits' => 'Please enter a valid reference number.',
'reference.exists' => 'We don\'t have that reference number on our records.',
];
}
public function rules() {
return [
'reference' => 'required|numeric|digits:10'
];
}
}
我的观点
<h3>Welcome, {{ $job->name }} ({{ $job->reference }})</h3>
<table border="1" style="width:100%">
@foreach ($updates as $update)
<tr><td>
<h3>{{ $update->title }}</h3>
<p>{{ $update->content }}</p>
<p><small><em>{{ $update->created_at }}</em></small></p>
</td></tr>
@endforeach
</table>
答案 0 :(得分:0)
不要重新发明轮子。您应该使用RESTful控制器,其具有create
方法来生成表单,并使用store
方法来持久保存数据。此外,它还包含edit
,update
和delete
方法,您可以将其用于编辑目的。
https://laravel.com/docs/5.1/controllers#restful-resource-controllers
对于表格,您应该使用Laravel Collective:
https://laravelcollective.com/docs/5.1/html
然后你将只有一条简单的路线 - Route::resource
,你将节省很多时间和精力。此外,在这种情况下,你不会遇到无法解决的错误。