Я действительно не хочу, чтобы нужно было переоценивать Eloquent, чтобы сделать это, и его достаточно мощный, чтобы это было возможно без него.Laravel Models, глобальный фильтр
В любом случае, я работаю над облачным приложением, которое использует таблицу для поддоменов. Каждая таблица в базе данных относится к этой таблице для фильтрации данных в каждом поддомене (все они используют одну и ту же базу данных).
Таким образом, это означает, как правило, везде мне нужно вызвать данные мне нужно применить $model->where('site_id','=',CURRENT_SUBDOMAIN_ID);
Так есть в любом случае, чтобы добавить что-то подобное в красноречив? Все еще изучая Laravel, но не нашел никакой информации об этом.
App::before(function($request)
{
$host = $request->getHost();
$parts = explode('.', $host);
$subdomain = $parts[0];
if($subdomain!='main'){
$site_settings = DB::table('sites')->where('subdomain',$subdomain)->first();
if(!$site_settings){ //find out a better way to do a 404 or redirect
return Redirect::to('http://testing.app:8000/login');
}
Config::set('request.site_name', $site_settings->subdomain);
Config::set('request.site_params', json_decode($site_settings->params));
Config::set('request.site_id', $site_settings->id);
}
});
Это, как я выяснить, что субдомен клиент в настоящее время, через него у меня есть глобальный для Site_ID, последний шаг в основном применении к модели.
Также каждая модель имеет следующие:
public function site()
{
return $this->belongsTo('\Site');
}
Используйте глобальную область применения - вот полное решение: http://stackoverflow.com/a/26099020/784588 –
Совсем недавно нашлось это, спасибо. Проблема в том, что я думал о фильтре, когда он более точным, чтобы думать о масштабах. –