2
我正在尝试使用单个匹配的控制器来显示和验证表单。我不确定这是否真的可行,因为我没有成功。通过验证导致Laravel路由中的重定向循环?
出于某种原因,它甚至不会显示初始视图 - 它只是进入302重定向循环,然后超时。
有人可以提出为什么它可能会这样做,我该如何解决它?我不想创建更多的路线和方法,因此match
,而不是单独的get
和post
,有两个独立的控制器方法。
我的路线
Route::match(['get', 'post'], '/tracking', [
'as' => 'tracking',
'uses' => '[email protected]'
]);
我的控制器
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>