我在laravel 5中的表格路线一直指向用户

时间:2015-09-18 04:40:03

标签: php laravel-4 laravel-5 laravel-5.1

无论我做了什么改变,我在laravel中的表单模型都会指向http://localhost:8000/user/profile/account/17。我有两条路线,一条用于管理另一条用户。

即使我处于管理模式,表单路由仍然指向用户。

 {!! Form::model($user, ['method'=>'PATCH', 'action' => ['ProfileController@update',$user->user_id]]) !!}

这些是我的路线:

Route::group(['prefix' => 'admin', 'middleware' => 'auth:admin'], function()
{
    $a = 'admin.';
    Route::get('/', ['as' => $a . 'home', 'uses' => 'AdminController@getHome']);
    Route::get('/profile', ['as' => $a . 'profile', 'uses' => 'ProfileController@index']);
    Route::get('/products', ['as' => $a . 'products', 'uses' => 'ProfileController@products']);
    Route::get('/payment', ['as' => $a . 'products', 'uses' => 'ProfileController@payment']);
    Route::get('/profile/account/{id}', ['as' => $a . 'edit', 'uses' => 'ProfileController@edit']);
    Route::patch('/profile/account/{id}', ['as' => $a . 'edit', 'uses' => 'ProfileController@update']);

});

Route::group(['prefix' => 'user', 'middleware' => 'auth:user'], function()
{

        $a = 'user.';
        Route::get('/', ['as' => $a . 'home', 'uses' => 'UserController@getHome']);
        Route::get('/profile', ['as' => $a . 'profile', 'uses' => 'ProfileController@index']);
        Route::get('/profile/account/{id}', ['as' => $a . 'edit', 'uses' => 'ProfileController@edit']);
        Route::Patch('/profile/account/{id}', ['as' => $a . 'edit', 'uses' => 'ProfileController@update']);



});

管理员和用户共享同一个控制器ProfileController。 谢谢!

1 个答案:

答案 0 :(得分:2)

如何使用路线而不是动作。

然后在使用模型打开表单之前,使用if语句检查您的管理员或用户。

var strTime = getHourFromDatePicker(myDatePicker)
print(strTime)

不是最干净但是解决了url表单应该指向的问题。使用admin作为占位符,请公开自己的变量。