Php 拉威尔模型,全局滤波器

Php 拉威尔模型,全局滤波器,php,laravel-4,eloquent,Php,Laravel 4,Eloquent,我真的不想为了做到这一点而忽略雄辩,它足够强大,没有它也可以做到这一点 无论如何,我正在开发一个云风格的应用程序,它使用一个表来表示子域。数据库中的每个表都引用此表,以将数据过滤到每个子域中(都使用相同的数据库) 因此,这意味着通常在需要调用数据的任何地方,我都需要应用$model->where('site_id','=',CURRENT_SUBDOMAIN_id') 那么,在《雄辩》中有没有添加类似的内容?仍在学习Laravel,但未发现任何有关此的信息 App::before(functio

我真的不想为了做到这一点而忽略雄辩,它足够强大,没有它也可以做到这一点

无论如何,我正在开发一个云风格的应用程序,它使用一个表来表示子域。数据库中的每个表都引用此表,以将数据过滤到每个子域中(都使用相同的数据库)

因此,这意味着通常在需要调用数据的任何地方,我都需要应用
$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);
    }
});
这就是我如何计算客户机当前在哪个子域中,通过它我有一个全局站点id,最后一步基本上是应用到模型

此外,每种型号都具有以下特点:

public function site()
{
    return $this->belongsTo('\Site');
}

当我找不到这个时,我的想法是错误的,它不是laravel的全局过滤器,而是一个范围


这只是拉威尔以一种创新的方式所做的事情之一,它似乎与你所习惯的有所不同。很好,但令人振奋。

使用全局范围-以下是完整的解决方案:刚刚发现,谢谢。问题是我在想过滤器的时候,更准确的想法是范围lol。