指定自定义表格名称并在模型| Laravel上设置条件
我有一个名为“users”的表。在这个表中,我有一个字段user_type,比如说值13作为属性管理器。现在,我创建了一个新的有说服力的Modellet say PropertyManager,并设置了该类的以下成员指定自定义表格名称并在模型| Laravel上设置条件,laravel,model,eloquent,Laravel,Model,Eloquent,我有一个名为“users”的表。在这个表中,我有一个字段user_type,比如说值13作为属性管理器。现在,我创建了一个新的有说服力的Modellet say PropertyManager,并设置了该类的以下成员 /** * The table associated with the model. * * @var string */ protected $table = 'users'; 现在我的问题是,我想设置基于条件的表名。 如果像这样运行查询PropertyManager:
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'users';
现在我的问题是,我想设置基于条件的表名。
如果像这样运行查询PropertyManager::all,那么它应该返回类型为13的所有用户。我不想设置where条件,否则如果where条件只是解决方案,那么我认为我不需要创建单独的雄辩模型。我可以像User::where--.那样快速而肮脏
让我们利用继承的优势
在PropertyManager模型中:
public function all()
{
return User::where('user_type', '13')->get();
}
// Call with PropertyManager::all();
这会导致您重载Eloquent的模型默认值,并返回实际上是属性管理器的所有用户
可能更好
更具可读性且可能被接受的是向用户模型中添加如下方法:
class User
{
// logic
public static function getAllPropertyManagers()
{
return self::where('user_type', '13')->get();
}
}
// Call with User::getAllPropertyManagers();
既然最终,PropertyManager仍然是用户,为什么不在用户模型中放置一些方法并以这种方式加载它们呢?试试这就是我想要的。谢谢你,老板@ab_ab