【发布时间】:2021-08-17 11:52:33
【问题描述】:
我只想从表用户中获取名称,但它返回网络选项卡中的整个用户对象,这会泄露电话等私人信息(仅在用户表中)
管理模型:
class Admin extends Model
{
protected $appends = ['name'];
public function user()
{
return $this->belongsTo('App\User');
}
public function getNameAttribute()
{
return $this->user?$this->user->name:'';
}
}
管理控制器:
public function ajaxLoadAdmins (Request $request)
{
$query = Admin::select('admins.slug', 'admins.about')->paginate(10);
return $admins;
}
当我从 ajax/axios 调用这个函数时,它会返回一个完整的用户对象以及包含用户表所有列的名称
我也尝试不使用访问器/修改器,并像下面的代码一样简单,但是当我们在 devtools 的网络选项卡中看到或者如果我们在控制台中登录它时,它仍然有一个用户对象......
public function ajaxLoadAdmins (Request $request)
{
$query = Admin::select('admins.slug', 'admins.about', 'users.name')->leftjoin('users','admins.user_id','=','users.id')->paginate(10);
return $admins;
}
【问题讨论】:
标签: javascript ajax laravel vue.js eloquent