Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте. Подскажите как сделать аналог используя eloquent:
SELECT * FROM t1 LEFT JOIN t2 ... WHERE t1.a < t2.a_limit
В документации есть вот такое:
$users = App\User::with(['posts' => function ($query) {
$query->where('title', 'like', '%first%');
}])->get();
Но тут вручную нужно указывать.
Здравствуйте. Подскажите почему повторяются записи при страничной навигации. Грубо говоря есть 50 записей на 5 страницах. Но может быть что на 1 и 10 страницах одна и та же запись повторяется, а определенные записи пропущены. Причем при редактировании исчезают .Сортировки никакой нет. Когда сортировку делаешь, записи появляются пропущенные.
Всех с Новым Годом. Нужно одним запросом в БД добавить множество записей с Select.
Типа вот так:
\App\Example::insert([
[
'name' => 'abc',
'value' => '123',
],
[
'name' => 'def',
'value' => '456',
],
// etc...
]);
Только что бы, например, value через select подставилось SELECT t1.value From t1 Where t1.a=X. Просто одним запросом думаю быстрее будет, чем циклом.
Здравствуйте. Есть форма которая выбирает данные по критериям. Например, цена от и до, и таких полей много. И есть два действия, вывести и экспортировать выборку. Получается в 2-х методах:
if ($request->has('price_from')) {
$query->where('products.price', '>=', $request->input('price_from'));
}
Я правильно понимаю что это нужно в Модели делать, типа так:
class SomeModel extends Model {
public function someMethod(Request $request) {
if ($request->has('price_from')) {
$query->where('products.price', '>=', $request->input('price_from'));
}
...
}
}
Или как-то по другому это можно сделать?
Здравствуйте. Подскажите пожалуйста, как сделать обновление с селектом в whereIn.
$table2 = DB::table('table2')->select('table1_id')->whereIn('table2.id', $request->input('selected'))
->groupBy('table1_id');
DB::table('table1')->whereRaw('id IN '.DB::raw("({$table2->toSql()})"))->update(...);
Пробовал вот так, но не срабатывает.
AlexeyMezenin, спасибо большое. Первый вариант не сработал, второй сработал.
Здравствуйте. Подскажите как очистить данные update_at. Запрос типа:
User::whereIn('id', ...)->update(array('updated_at' => null));
Не срабатывает. Дата заменяется на текущую.
Ты хочешь использовать Eloquent вне ларавела?
Да хотя бы просто взять Класс который ларавел использует, указать туда данные подключения и выполнять запросы отдельно от лары.
Или просто есть БД, куда хочешь подключиться как угодно, главное — без ларавела?
Как сторонними средствами сделать я в курсе.
А в чем проблема?
Проблема с подключением. В документации видел что можно так делать внутри ларавел:
$users = DB::connection('foo')->select(...);
Но мне нужно отдельным скриптом, который вообще не имеет отношения. И вот не знаю какие файлы и как правильно подключить. Что бы подобным образом выолнялись запросы.
Здравствуйте. Нужно из стороннего скрипта подключится к БД ларавела используя его библиотеки. Нужно просто для получения данных и БД. Что бы не использовать сторонние скрипты.
Спасибо.
Здравствуйте. В конструкторе контроллера вообще можно объявить обязательную переменную, что бы ее потом можно было получить в views.
То есть вызываем контроллер с переменной project_id и эта переменная, при работе с другими методами контроллера сохраняется. И так, покуда не откроем контроллер с другим значением project_id.
Спасибо.
Подскажите пожалуйста, не получается во вложенном запросе сделать выборку whereColumn и where. Выводит ошибку SQLSTATE[HY093]: Invalid parameter number .
$table2 = DB::table('table2 as t2')->select(DB::raw('count(*)'))
->where('t2.status', '=', 'ok') // <== ВОТ ИЗ ЗА ЭТОГО ОШИБКА
->whereColumn('t2.table1_id', 'table1.id');
$table1 = DB::table("table1")
->select(DB::raw(...
({$table2->toSql()}) as t2,
..."));
Причем если сделать $table2 = Table2::select(...) и в $table1 добавить ->mergeBindings($table2->getQuery()), то тогда в $table1 не работает ->where(...). Подскажите в чем причина.
Здравствуйте. Нужно сделать запрос с 3 уровнями вложенности, но не хочет находить поле.
Запрос 1 такой:
SELECT ... FROM (
SELECT max(table.id)...
FROM table
left ...
where table.table1_id = table1.id <-- вот это поле не находит
group by ...
) t
left join ...
И потом этот запрос вставляю в другой:
SELECT (Запрос 1) FROM table1 ...
Подскажите как сделать, что бы 3 уровень вложенности находил поле?
Ps. пока пришлось убрать в 3 уровне 'where table.table1_id = table1.id' и перенести на 2, но из-за этого group by выполняется по большому объему данных.
В контроллере нужно сделать проверку на существование переменной GET запроса. Хочу сделать отдельным методом типа вот так:
protected function is_param_id(Request $request){
return redirect('home');
}
Но редирект при вызове метода не работает. Не хочу просто чтобы код повторялся в каждом методе. То же самое и в конструкторе, редирект не работает. Подскажите как сделать.
Engineer, нет, так не срабатывает.
t3_id просто передается по ссылке. Я пока сделал так:
Проверяю name по t2_id на существование валидацией.
Потом получаю по name t2_id (T2 id). T2::select('id')->where(...);
Далее еще раз запускаю валидатор на unique по полям t2_id и t3_id. Просто думал может можно одним валидатором обойтись.
Подскажите пожалуйста кто сталкивался. Есть таблицы:
T1
id
t2_id
t3_id
T2
id
name
Поля t2_id и t3_id в связке пометил как уникальные $table->unique(['t2_id ', 't3_id ']);
Как сделать валидацию на уникальность, только при условии что я заместо t2_id использую name при добавлении в T1. То есть поля t2_id у меня нет.
Здравствуйте. Подскажите пожалуйста как сделать динамическое меню и ссылки. То есть типа зависимости от ID. Для примера приведу задачу, есть список машин, у каждой машины свой журнал обслуживания, и еще много других контроллеров которые зависят от ID машины.
Пользователь выбирает конкретную машину по ID и получает динамическое меню и все ссылки с данным ID.
Машины->id_Машины->Меню
Машины->id_Машины->Поломки->ИД_Поломки->edit
Проблема заключается в передаче id_Машины, то есть что бы его не потерять в ссылках. Я понимаю что можно в ручную подставлять:
<a href="{{ action('RepairController@index', $car->id) }}">
Ссылка
</a>
Может есть какое-то хорошее решение.
Проблема решена. Нужно положить в папку /css/fonts/
Здравствуйте. Не работают glyphicons от bootstrap. Пишут что нужно просто скопировать в папку fonts, но не помогло.
Еще пишут что нужно в файле app.scss перед bootstrap добавить путь к иконкам:
$icon-font-path: '/fonts/bootstrap/';
Но это то же не помогло. Подскажите пожалуйста как решить проблему с иконками.
Подскажите как лучше всего работать с формами в ларавел 5.4. На сайте в обучающем видео приводится пример через html код. Не ужели нет конструктора форм нормального? Или делать вручную и не парится?