我刚刚开始学习使用laravel编程,当我不得不使用foreach打印出一些用户数据及其ID时,
like
{{ $user->username }}
{{ $user->somedata1 }}
而其他部分看起来像
路线
Route::get('/some/{user}', 'SomeController@show');
控制器
public function show(User $user){
return view(some.show)->with('user' $user)
}
用户表
id
username
somedata1
somedata2
password
addr
birthday
...
我开始考虑这会不会调用其表行中的每个数据,然后从中打印出用户名?因此冒着某种安全问题的风险,例如暴露敏感数据,例如密码,地址等?
如果是这样,如何隐藏特定的列以免被调出?我是否需要从控制器手动准备数据?
添加:示例中的控制器是否返回其行中的所有内容?
首先,即使您向视图公开密码,鉴于您正在使用Laravel的身份验证支架,也不必担心,因为密码是通过bcrypt
进行哈希处理的。任何经过哈希处理的字符串都不能反转。
第二,您可以使用Eloquent的select()
方法。您可以按照以下步骤进行操作:
Model::select('column_1','column_2')->where('column_1', 'value')->get();
我认为这解决了您的问题。