【问题标题】:how to call two functions by one route in laravel如何在laravel中通过一条路线调用两个函数
【发布时间】:2019-08-22 06:25:44
【问题描述】:

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

我试过这样但没有用

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

【问题讨论】:

  • 写代码到store函数末尾的所有show details函数
  • 不可能。检查上面的链接。
  • 或者可以创建一个 ajax 来从加载的两个函数中获取数据。
  • 您可以创建一个主方法,并根据您的情况显示不同的视图。

标签: php laravel laravel-5 laravel-route


【解决方案1】:

这就是你要找的吗?

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');

【讨论】:

    【解决方案2】:

    最好用redirect to controller action

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

    如果你想使用重定向方法,现在在store 方法中添加ProspectController 行

       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();
    

    【讨论】:

      【解决方案3】:

      试试下面的代码:

      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(){
      
      }
      

      【讨论】:

      • @Jazim Max 根据您的问题,这是完美且正确的答案。请接受此作为问题的答案。
      猜你喜欢
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2019-10-19
      • 2013-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多