按下laravel链接时触发控制器功能

时间:2017-09-20 17:32:24

标签: php laravel laravel-5

我试图在按下链接时触发控制器功能。

所以......,这是HTML

<a class="hollow button primary" href="{{ route('hire.worker', ['id' => $id]) }}"><i class="fa fa-user-plus"></i> Hire as Worker</a>

这是路线:

Route::post('/profile/{id}', [
'as' => 'hire.worker',
'uses' => 'ProfileController@hire'
]);

这是控制器:

public function hire($id)
{
    $worker = New Worker;

    $worker->workerID = $id;

    $worker->save();
}

当我按下按钮时,页面只刷新,数据库中没有存储任何内容,我也有其他一些路径,这可能是问题所在。

// Profile

Route::get('/profile/{id}', [
  'as' => 'display.profile',
  'uses' => 'ProfileController@index'
]);

Route::post('/profile/{id}', [
    'as' => 'display.profile',
    'uses' => 'ProfileController@store'
]);

Route::post('/profile/{id}', [
    'as' => 'hire.worker',
    'uses' => 'ProfileController@hire'
]);

1 个答案:

答案 0 :(得分:0)

链接使用GET作为请求方法,因此Route :: post不正确。 创建一个新路径,如下面的路径,并在控制器方法的末尾重定向到您最初想要的任何页面。

Route::get('/profile/link/{id}', [ 'as' => 'hire.worker', 'uses' => 'ProfileController@hire' ]);