简而言之。我一直在寻找某种方法,以便每次在laravel中查询模型时都不会检索某些列。可能吗?例如,具有以下内容:
Class User extends Model{
...
protected $columns = ["name", "email"];
...
并且每次像User
这样的查询User::get()
都只返回名称和电子邮件地址
答案 0 :(得分:1)
您正在寻找hidden。
protected $hidden = ["values", "i", "want", "to", "hide"];
答案 1 :(得分:0)
您可以仅选择特定的列,而不使用 User :: get()
$models = User::select('name', 'email')->get();
答案 2 :(得分:0)
您可以通过两种方式过滤列
方法1
在模型上使用protected $hidden=[]
并列出您希望隐藏的变量。
该方法还会永久隐藏您的变量,如果您想再次访问变量,则必须直接调用它,例如:
$user=User::find(1);
$user->your_hidden_variable
检查Eloquent Serialization了解更多信息。
方法2 在获取/选择时传递一个数组
$user=User::select(["name","email"])->where("your","condition");
OR
$user=User::where("your","condition")->get(["your","fields"]);