Как реализовать "defaults ()" для нескольких параметров в маршруте - Laravel - PullRequest
3 голосов
/ 24 июня 2019

Итак, у меня есть POST URL с двумя параметрами, и я хочу назначить значения по умолчанию для обоих параметров.

Я знаю, что вы можете реализовать этот способ для URL с одним параметром:

Route::post('activity-log/datatable/{tag_access?}/{page_access?}',
'SettingsController@datatable_activity_log')
->defaults('tag_access', 'activity-log');

Но как мне поступить с URL, который выглядит следующим образом:

Route::post('activity-log/datatable/{tag_access?}/{page_access?}',
'SettingsController@datatable_activity_log')

Ответы [ 2 ]

3 голосов
/ 24 июня 2019

Вы можете достичь этого следующим образом:

Сохраните ваш маршрут так, как вы хотите, вот так:

Route::post('activity-log/datatable/{tag_access?}/{page_access?}','SettingsController@datatable_activity_log')

Теперь, в функции контроллера вы можете принимать эти параметры со значением по умолчанию, например так,

public function datatable_activity_log($tag_access='activity-log', $page_access='activity-log', Request $request){
    // Here write your logic
}

Возможно, это не лучший способ достичь того, чего вы хотите, но это один из способов.

2 голосов
/ 24 июня 2019

Из того, что я вижу в отношении использования значений по умолчанию, вы можете сделать по одному:

Route::post('activity-log/datatable/{tag_access?}/{page_access?}',
'SettingsController@datatable_activity_log')
->defaults('tag_access', 'activity-log')
->defaults('page_access', 'defaultValue');

Альтернативой (так как defaults является публичной) является:

$route = Route::post('activity-log/datatable/{tag_access?}/{page_access?}',
'SettingsController@datatable_activity_log');
$route->defaults = [ 'tag_access' => 'activity-log', 'page_access' => 'defaultValue' ];

Мой личный фаворит - это то, что @Sagar Gautam предлагает использовать параметры функций по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...