protected $webYourNamespace = 'App\Http\Controllers\Web';
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
//
$this->mapYourCustomRoutes();
}
protected function mapYourCustomRoutes()
{
Route::middleware('web')
->namespace($this->webYourNamespace)
->group(base_path('routes/custom.route.php'));
}
Правильно ли я вообще сделал, что дал оба метода одной функции контроллера?Если у вас внутри этого метода появилась необходимость различать тип запроса, то нет, что-то у вас не так сделано.
Вот как грамотно разделить эти 2 задачи?Сгенерируйте при помощи стандартных инструментов контроллер ресурса и посмотрите как это делается идиоматически. Да просто добавьте
Route::resource(...)
и вызовите php artisan route:list
, там вся структура контроллера видна будет.Раньше я писал 2 разных роута и функции в контроллере для гет и пост, сейчас хочу сократить.GET - это вывод формы, POST - обработка пользовательсого ввода. Это разная логика, ничего общего в этих методах не бывает обычно, поэтому вместо "сократить" в данном случае правильнее использовать "усложнить себе работу" или "ухудшить код".
Route::match(['get', 'post'], 'test', function (\Illuminate\Http\Request $request) {
return $request->method();
});
function request (url, type, data, callback) {
$.ajax({
headers: {'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')},
url: url,
type: type,
data: data,
success: function(res) {
if(res['status'] == 'good') {
//code
}
else {
//code
}
callback(res);
}
});
}
request('/ajax/action', 'get', {'par' : 1} , function(res){
console.log(res);
});
А как узнать что еще есть? Искал но не нашел в интернете какого-нибудь списка подобных компонентов.Laravel следует всем основным стандартам PHP, в т.ч. поддерживается автозагрузка, установка "компонентов" (библиотек) через Composer и т.д., список того, что Вы можете вкрутить в ваш Laravel (и не только) - можно найти тут.
$validator = \Validator::make([
'filters' => $filters,
], [
'filters.filters.date_from.value' => 'bail|required|date',
'filters.filters.date_to.value' => 'bail|required|date',
], [
'filters.filters.date_from.value.required' => 'Укажите дату начала',
'filters.filters.date_from.value.date' => 'Укажите корректную дату начала',
'filters.filters.date_to.value.required' => 'Укажите дату конца',
'filters.filters.date_to.value.date' => 'Укажите корректную дату конца',
]);
\DB::table('tName')->update(['val' => 0]);
\DB::update("UPDATE `{$table}` SET `val` = ? WHERE 1", $params);
DB::table('auto')
->select('auto.*', DB::raw('count(parts.id) as total'))
->join('parts', 'auto.id', '=', 'parts.auto_id')
->groupBy('auto.id')
->get();