Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Ребят, решил просмотреть запрос через toSql() и в итоге получил пустоту вместо значений из параметров )))
"select `device_series`.`id_device_series`, `device_series`.`name_series`, `device_series`.`img_series`, `category_device`.`id_category_device`, `category_device`.`name_category`, `category_device`.`routename`, `brands`.`id_brand`, `brands`.`name_brand` from `device_series` inner join `model` on `model`.`id_device_series` = `device_series`.`id_device_series` inner join `brands` on `model`.`id_brand` = `brands`.`id_brand` inner join `category_device` on `brands`.`id_category_device` = `category_device`.`id_category_device` where (`brands`.`name_brand` = ? and `category_device`.`routename` = ?)
Если я применю метод getBinding, то получу 2 значения из двух параметров.
Всем привет.
Есть запрос, в котором присутствуют несколько условий, в которых есть параметры и в них есть значение. Проблема в том, что значения хоть и передаются в сам запрос(дебажил), то он вообще выводит пустоту. Я не понимаю с чем это связано, хотя если вписать в запрос вручную данные, то он выводит информацию из бд.
Сам запрос
static public function _sql_all($namebrand,$routename)
{
$series = DB::table('device_series')->join('model', 'model.id_device_series', '=', 'device_series.id_device_series')
->join('brands', 'model.id_brand', '=', 'brands.id_brand')
->join('category_device', 'brands.id_category_device', '=', 'category_device.id_category_device')
->select('device_series.id_device_series', 'device_series.name_series', 'device_series.img_series', 'category_device.id_category_device', 'category_device.name_category', 'category_device.routename', 'brands.id_brand', 'brands.name_brand')
->where([['brands.name_brand','=',"{$namebrand}"],['category_device.routename','=',"{$routename}"]])
->get();
return $series;
}
Вот контроллер
public function seriesshow($namebrand,$routename){
return view('series.mainseries')->with([
"result" => device_series::_sql_all($namebrand,$routename)]);
}
Вот маршрут
Route::get('category/{routename}/brand/{namebrand}/series', 'SeriesController@seriesshow')->name('seriesbrand');
Да, вы правы. Я решил проблему, просто не знал, что в шаблонах можно через запятую указывать переменные для ссылок, которые передаются в параметры неограниченным количеством.
Всем привет!
Перейдем сразу к сути. Я начал изучать Laravel совсем недавно и столкнулся с проблемой, которую не могу пока что решить. Если у кого-то есть идеи, заранее благодарю, надеюсь эта тема поможет многим другим людям.
В общем, я разрабатываю сайт на тему ремонтного сервиса для дипломного проекта. В ходе написания логики для маршрутов сайта, я столкнулся с проблемой, которая не дает мне понять, как все таки правильно использовать структурированные маршруты.
Кратко расскажу как должна быть устроена логика. Есть Категория устройств: смартфоны, планшеты, ноутбуки. У категории есть бренды, а в брендах серии моделей, например: galaxy A,J и тд. При переходе открываются модели из выбранной серии, а при выборе модели открывается прайс-лист услуг.
В чем загвоздка?
Логика маршрута выглядела так
{name_brand}/series
проблема была именно в том, что для пути маршрута в web.php мне нужен был всего один параметр, это имя бренда, а для модели два: имя бренда, категория устройств. Загвоздка в том, что было 2 условия в запросе sql, на что laravel ругался, выдавая ошибку, что упущено 2 аргумента, но задан всего один. С одним условием я знаю как работать, а вот с несколькими в Laravel нет. Вот мой запрос
SELECT DISTINCT
device_series.id_device_series, device_series.name_series, device_series.img_series, category_device.id_category_device, category_device.name_category, brands.id_brand, brands.name_brand
from device_series
INNER JOIN model on device_series.id_device_series=model.id_device_series
INNER JOIN brands on brands.id_brand=model.id_brand
INNER JOIN category_device on category_device.id_category_device=brands.id_category_device
WHERE brands.name_brand
like $name_brand and category_device.name_category
like $name_category
Файл web.php
// Категории брендов, серии устройств и их модели
Route::group([
'prefix' => 'brands'
], function () {
// Бренды выбранной категории
Route::get('{routename}', 'BrandController@brandshow')->name('categorybrand');
// Выбор серии у бренда
Route::get('{name_brand}/series/', 'BrandController@seriesshow')->name('seriesbrand');
Контроллер, отвечающий за вывод информации из модели в представление
public function seriesshow($namebrand){
return view('series.mainseries')->with([
"result" => device_series::_sql_all($namebrand)
]);
}
Вот сама ошибка Too few arguments to function App\device_series::_sql_all(), 1 passed and exactly 2 expected.
Честно, говоря не нашел подобные темы в просторах интернета, надеюсь здесь люди помогут.
Страницы 1