Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Как-то так:
use Carbon\Carbon;
User::whereBetween('date', array(Carbon::now()->startOfDay(), Carbon::now()->endOfDay()))->get();
В ларавел используется Carbon для работы с датами
http://laravel.com/docs/eloquent#date-mutators
Возможно ли отсортировать по полю которое рассчитывается по формуле.
Например имеем таблицу точек с полями X, Y, Z
Необходимо для каждой точки вывести соседей отсортированных по увеличению расстояний от исходной.
dist = (xa - xb)2 + (ya - yb)2 + (za - zb)2
Напишите откуда берется $usefuls_id я не совсем понимаю что вы там хотите сделать.
У вас в $usefuls_id должна быть или коллекция или массив.
Еще:
DB::select(...)->get()
Подскажите как обходить коллекцию с группировкой?
Скажем получаю запросом таблицу с полями Поле1, Поле2, Поле3
Нужно сгруппировать по этим полям и обойти для вывода:
Поле1_1
-Поле2_1
--Поле3_1
--Поле3_2
-Поле2_2
--Поле3_3
--Поле3_4
Не могу нануглить примера своя мысль была:
foreach ($collection->GroupBy('Поле1', 'Поле2', 'Поле3') as $Поле1) {
}
Но не выходит.
Я могу ошибаться но по-моему
$usefuls = Useful::whereIn('id', $usefuls_id->toArray( ))->get();
Не проверял!
Приветствую!
Спрошу наверно глупость но:
Как реализовать следующее:
Есть Модель Продукты у нее есть реквизит Тип
У типа есть код, наименование и прочие реквизиты
Но типов не так много и они статичные, хранить их в БД глупо.
Хочется иметь класс Тип с фиксированным набором записей которые можно присваивать в реквизиты другим объектам.
Но по факту двумя запросами по индексу этот запрос в разы легче для базы.
т.е. если сделать 3 запроса:
1. Все prototype_id из model_prototype где model_id = $this->model_id
2. Все model_id из model_prototype где prototype_id в списке полученном в шаге 1
3. Все модели model_id которых в списке полученном в шаге 2
То это будет эффективнее?
Евгений, привет! Хотелось одним запросом. Вот что с утра на свежую голову вышло:
public function analogs()
{
return DB::table('models')
->where('id', '!=', $this->id)
->whereIn('id', function($query)
{
$query->select('model_id')
->from('model_prototype')
->whereIn('prototype_id', function($query)
{
$query->select('prototype_id')
->from('model_prototype')
->where('model_id', '=', $this->id);
});
})
->get();
}
Осталось сделать чтоб возвращало коллекцию объектов Model
Как я понимаю надо получить:
Все prototype_id из model_prototype где model_id = $this->model_id
Затем все model_id из model_prototype где prototype_id в списке полученном ранее
Затем уже получить все модели model_id которых в списке полученном в предыдущем шаге.
Все сложнее связь многие ко многим, и получить надо Models
Schema::create('prototypes', function($table)
{
$table->increments('id');
$table->string('name');
$table->timestamps();
});
Schema::create('models', function($table)
{
$table->increments('id');
$table->string('name');
$table->timestamps();
});
Schema::create('model_prototype', function($table)
{
$table->increments('id');
$table->integer('prototype_id');
$table->integer('model_id');
$table->timestamps();
});
Приветствую!
Есть:
class Model extends Eloquent {
public function prototypes()
{
return $this->belongsToMany('Prototype');
}
public function scopeAnalogs()
{
return $query->where(??????????????);
}
}
class Prototype extends Eloquent {
public function models()
{
return $this->belongsToMany('Model');
}
}
Требуется из Model получить все модели у которых прототипы как у текущей модели.
Пример:
М1 - П1
М1 - П2
М2 - П1
М2 - П3
М3 - П5
М4 - П2
М5 - П6
Должны получить:
М2
М4
Подскажите решение.
Сам разобрался )
Product::join('shops', 'products.shop_id', '=', 'shops.id')->orderBy('date', 'desc')->take(6)->get();
Подскажите как реализовать сортировку по реквизиту связанной модели.
Имеем:
class Product extends Eloquent {
public function shop()
{
return $this->belongsTo('Shop');
}
И реквизит Date у Shop.
Необходимо получить все товары у которых задан магазин и отсортировать по реквизиту (Магазина) Date
Похоже у меня в вопросе был ответ. Надо получить экземпляр в фильтре.
protected $shop;
public function __construct()
{
parent::__construct();
$this->beforeFilter(function($route, $request) {
$this->shop = $route->parameter('shop');
return $this->shop->title;
});
}
А есть возможность передать в конструктор экземпляр класса из параметра URL?
Нужен фильтр который зависит от этого параметра.
Подскажите как передать в контроллер?
routes.php
Route::bind('shop', function($id, $route)
{
$shop = Shop::find($id);
if ($shop == null)
{
$shop = $id;
}
return $shop;
});
Route::group(array('domain' => '{shop}.domain.local'), function()
{
// Так выводит
Route::get('/test', function($shop)
{
return $shop;
});
// Так нет
Route::get('test', 'ShopController@test');
});
ShopController.php
class ShopController extends \BaseController {
protected $shop;
public function __construct(Shop $shop)
{
parent::__construct();
$this->shop = $shop;
}
public function test()
{
return $this->shop;
}
}
Для перехода на страницу куда шел пользователь до срабатывания фильтра "auth" можно использовать Redirect::intendeed, но как реализовать чтобы пользователя возвращало на текущую страницу если он сам перешел по ссылке login?
Использование Redirect::intended:
public function postLogin()
{
// Get all the inputs
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
// Declare the rules for the form validation.
$rules = array(
'email' => 'Required',
'password' => 'Required'
);
// Validate the inputs.
$validator = Validator::make($userdata, $rules);
// Check if the form validates with success.
if ($validator->passes())
{
// Try to log the user in.
if (Auth::attempt($userdata))
{
// Redirect to intended page,
// notice this only works if we redirected to the login page using Redirect::guest(...)
return Redirect::intended('/')->with('success', 'You have logged in successfully');
}
else
{
// Redirect to the login page.
return Redirect::to('login')->withErrors(array('password' => 'Password invalid'))->withInput(Input::except('password'));
}
}
// Something went wrong.
return Redirect::to('login')->withErrors($validator)->withInput(Input::except('password'));
}
Из мануала:
Route::model('user', 'User', function()
{
throw new NotFoundException;
});
Подскажите как сделать чтоб срабатывал редирект если пользователь не найден?
Евгений, спасибо!
Читал у вас в блоге про переход на Laravel поздравляю )
Подскажите как в L4 подключить Carbon localized diffForHumans?
Подскажите кто нибудь смотрел исходники fluxbb2 core на какой там стадии, имеет смысл разбираться и пытаться использовать на текущий момент?
Вопрос снят, не знаю где была ошибка но переделал по новой и все заработало.