 Laravel по-русски
Laravel по-русски
      
      
    Русское сообщество разработки на 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 на какой там стадии, имеет смысл разбираться и пытаться использовать на текущий момент?
Вопрос снят, не знаю где была ошибка но переделал по новой и все заработало.