【问题标题】:Redirect loop in Laravel route caused by validation?验证引起的Laravel路由中的重定向循环?
【发布时间】:2016-06-02 22:05:48
【问题描述】:

我正在尝试使用单个匹配的控制器来显示和验证表单。我不确定这是否真的可行,因为我没有成功。

由于某种原因,它甚至不会显示初始视图 - 它只是进入 302 重定向循环然后超时。

任何人都可以建议它为什么会这样做,以及我该如何解决它?我不想创建更多的路由和方法,因此 match 而不是单独的 getpost,具有两个单独的控制器方法。

我的路线

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>

【问题讨论】:

    标签: php validation laravel laravel-5 routing


    【解决方案1】:

    不要重新发明轮子。您应该使用 RESTful 控制器,它具有 create 方法来生成表单和 store 方法来持久化数据。此外,它还包括editupdatedelete 方法,可用于编辑目的。

    https://laravel.com/docs/5.1/controllers#restful-resource-controllers

    对于你应该使用 Laravel Collective 的表单:

    https://laravelcollective.com/docs/5.1/html

    那么您将只有一条简单的路线 - Route::resource,您将节省大量时间和精力。此外,在这种情况下,您不会发现无法跟踪的错误。

    【讨论】:

      猜你喜欢
      • 2015-03-17
      • 2014-09-11
      • 2014-07-14
      • 2017-11-29
      • 2013-06-01
      • 2018-12-27
      • 2014-06-02
      • 2014-07-18
      • 2016-09-01
      相关资源
      最近更新 更多