第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel 6 路由變量控制器方法

Laravel 6 路由變量控制器方法

PHP
慕娘9325324 2022-05-27 16:33:11
我想為我在 laravel 中的所有 ajax 請求創(chuàng)建一條路由。目前我擁有的是:Route::post('/ajax/{method}', 'AjaxController@index')->name('ajax-request');我可以做這樣的事情嗎(使用動態(tài)方法名稱):Route::post('/ajax/{method}', 'AjaxController@{method}')->name('ajax-request');所以例如當我打電話時/ajax/get_comments,它會調(diào)用AjaxController@get_comments方法嗎?
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

你可以在你的路由中添加閉包函數(shù)來實現(xiàn)這一點。


Route::get('ajax/{method}', function($method){


    $app = app();


    $controller = $app->make('App\Http\Controllers\AjaxController');


    return $controller->callAction($method, $parameters = array());


});

現(xiàn)在,調(diào)用如下get_comments方法:


localhost:8000/ajax/get_comments

注意:確保您的控制器在app/Http/Controller/目錄中。


查看完整回答
反對 回復 2022-05-27
?
jeck貓

TA貢獻1909條經(jīng)驗 獲得超7個贊

Route 方法(get等)可以使用以下模式post接受它們的第二個參數(shù)作為字符串ControllerName@methodName。

{method}您可以從請求路徑中檢索參數(shù)并將其附加到 Route 方法的第二個參數(shù)。即,像'ControllerName@'. 'methodName'

嘗試以下操作

假設{method}將是請求路徑中的第二段。[如果不更改參數(shù)中的值segment()。]

嘗試以下操作:

Route::post('/ajax/{method}', 'AjaxController@'.(Request::segment('2')))->name('ajax-request');

請注意

如果您選擇將 URL 參數(shù)用作方法名稱,則如果用戶能夠更改指定路徑以外的請求路徑,則可能會引發(fā)運行時異常。

考慮以下場景:

AjaxController只有方法get_comments()get_deleted_comments().

如果請求是/ajax/get_comments/ajax/get_deleted_comments則它們的相應方法將起作用。但是,如果 request 類似于/ajax/get_xyz并且您沒有get_xyz在您的方法中命名的方法,AjaxController那么BadMethodCallException將拋出 a 。


查看完整回答
反對 回復 2022-05-27
  • 2 回答
  • 0 關注
  • 126 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號