laravel query builder orderby orderbyraw wherein wherehas pagination chunk delete truncate
** Выбор всех данных**
$res = Order::all(); //Возвращает Collection
$res = Order::all()->toArray(); // только данные
Поиск по идентификатору - find
$res = Order::find(1);
Поиск по динамическому свойству
$res = Song::whereSlug($slug)->first();
Выборка по "вложенному" полю
$order = PageOrder::whereHas('status', function($query)
{
$query->where('name', OrderStatus::NEW_ORDER);
})
** Условие с LIKE **
User::where('name', 'LIKE', "%$name%")
** С подзапросом к другой таблице **
$states = Condition::whereIn('id', function($query){
$query->select('condition_id')
->from(with(new Apartment)->getTable())
->where('status', EstateStatus::Actual);
})->get()
** С сортировкой по определенным значениям **
Нужно было в начале выводить элементы с определенным id, затем сортировать по дате В Mysql есть для этого функция FIELD(id, 2, 1, 5) asc
$pages = $pages->orderByRaw("FIELD(city_id, ". Location::getCurrentCity()->id ." ) desc")->orderBy('start');
Article::latest($column_name = 'created_at')->get()
добавляет desc сортировку по полю
Article::oldest($column_name = 'created_at')->get()
добавляет asc сортировку по полю
Tag::lists('name')
возвращает массив только с этим полем
** Сортиврока по полю, затем записи с Null **
Нужно сортировать по полю, но в конце выдавать записи, у которых это знчение не указано
$query->orderByRaw("$sort_field is NULL")->orderBy($sort_field, $sort)
** Объединение условия **
$pages = SitePage::whereDraft(false)
->where('id', '<>', $page->id)
->where(function($query) use ($page)
{
$query->where('parent_id', '<>', $page->id)->orWhereNull('parent_id');
})
->lists('name', 'id');
** Паганицая **
Office::chunk(300, function ($estates) {
foreach ($estates as $estate) {
\Queue::pushOn('watermarks', new WatermarkEstate($estate));
}
});
** Удаление **
# отключение проверки внешнего ключа
\DB::statement("SET foreign_key_checks=0");
foreach(Land::all() as $ap){ $ap->delete(); } # т.к надо удалить фотографии
foreach(Apartment::all() as $ap){ $ap->delete(); }
Land::truncate();
Apartment::truncate();
ImportProcess::truncate(); # дропает все строки + сбрасывает id к 1
PriceChange::truncate();
LogMessage::truncate();
\DB::statement("SET foreign_key_checks=1");