gpt4 book ai didi

php - Laravel 模型,全局过滤器

转载 作者:行者123 更新时间:2023-12-04 16:49:24 29 4
gpt4 key购买 nike

我真的不想重写 Eloquent 来做这件事,它足够强大,没有它也可以实现。

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

所以这意味着通常我需要调用数据的任何地方都需要应用 $model->where('site_id','=',CURRENT_SUBDOMAIN_ID);

那么在 Eloquent 中是否可以添加类似的东西?还在学习 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');
}

最佳答案

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

Global filtering - how to use global scope in Laravel Eloquent

这只是 laravel 以一种创新的方式所做的事情之一,它看起来与您习惯的方式有点不同。很棒,但令人兴奋。

关于php - Laravel 模型,全局过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27071377/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com