如何在laravel中通过一条路线调用两个函数

时间:2019-04-01 06:26:48

标签: php laravel laravel-5 laravel-route

我想通过1条路线获得2个功能

我尝试过这种方法,但是不起作用

Route::post('prospect', ['ProspectController@store' , 
                         'course_controller@show_details']);

3 个答案:

答案 0 :(得分:2)

这是您要寻找的东西吗?

Route::get('prospect', 'course_controller@show_details');
Route::post('prospect', 'ProspectController@store');

如果要在存储后显示prospect,为什么不直接在ProspectController@store中返回它呢?

如果要遵循Restful API设计:

 Route::post('prospect', 'ProspectController@store'); // return created prospect here

 Route::get('prospect/{id}', 'ProspectController@show');

答案 1 :(得分:1)

请尝试以下代码:

Route::post('prospect','ProspectController@store');

public function store(Request $request)
{
    if($request->something == 'something'):
       Self::showDetail();
    else:
      // Continue store method

    endif;
}

public static function showDetail(){

}

答案 2 :(得分:0)

更好地使用redirect to controller action

try this way
Route::post('prospect', 'ProspectController@store'); //use only one method 

如果要使用重定向方法,请现在在ProspectController方法的store中添加行

   return redirect()->action('HomeController@index');

否则只能像这样使用调用方法。

 app('App\Http\Controllers\course_controller')->show_details();

否则就这样使用

 app(course_controller::class)->show_details();

或直接创建对象

(new  App\Http\Controllers\course_controller())->show_details();