我对一个非常简单的事情如何运作起了很大的疑问:
如果我打电话:
$companies=User::All();
然后我可以在forach
:
foreach($companies as $company)
$company['new_field']= 'something';
如果我限制查询的输出,例如:
$companies = DB::table('companies')
->select('id','name','email','business_name',...)->get();
事情不像以前那样有效,
->get()
->toArray()
(错误上升)put() and push()
进行集合方法,然后再次尝试错误...... 如何在集合的每个项目中添加一个字段,只是为了将其传递给视图?
答案 0 :(得分:2)
尝试这样,希望它适合你:
$users=User::select('id','name','email','business_name',...)->get()->toArray();
然后像这样使用foreach循环:
foreach($users as $key => $value ){
$users[$key]['newField'] = "Demo";
}
答案 1 :(得分:1)
如果您正在使用Laravel和模型,那么有更好的方法来添加自定义属性或字段,这就是我为自定义字段所做的事情
例如:
有一个型号名称用户 所以在用户模型中 添加属性名称如下:
class User extends Model
{
protected $appends = ['new_field'];
public function getNewFieldAttribute() // defining field logic here
{
return // your code
}
因此您无需使用foreach和循环并添加新字段
了解更多关于laravel doc的信息:https://laravel.com/docs/5.5/eloquent-mutators#accessors-and-mutators
建议
您也可以使用Model限制输出。
User::select('id','name','email','business_name',...)->get();
如果您正在制作像
这样的数组User::select('id','name','email','business_name',...)->get()->toArray();
所以这也会为您提供自定义字段