Php 修改结果DB Raw laravel查询中的数据

Php 修改结果DB Raw laravel查询中的数据,php,database,laravel,eloquent,Php,Database,Laravel,Eloquent,我有这样一个原始查询: $models = DB::select(DB::raw("SELECT ... etc)); foreach($models as &$model){ $model['picture'] = '/images/models/' . $model['picture']; } unset($model) 我想修改结果集合中的数据,但我不认为它是一个集合 无论如何,假设我想将所有$model->picture修改为类似“which/path”的内容$模型->

我有这样一个原始查询:

$models = DB::select(DB::raw("SELECT ... etc));
foreach($models as &$model){
   $model['picture'] = '/images/models/' . $model['picture'];
}
unset($model)
我想修改结果集合中的数据,但我不认为它是一个集合

无论如何,假设我想将所有$model->picture修改为类似“which/path”的内容$模型->图片

我试过这样做,但它没有修改任何内容,也没有出现任何错误:

foreach($models as $model){

   $model['picture'] = '/images/models/' . $model['picture'];

}

我遗漏了什么?

好吧,对我来说,你应该用雄辩来表达,这样就足够了:

$models = YourModel::all();

foreach($models as $model){

   $model->picture = '/images/models/' . $model->picture;
   $model->save(); // here you save it to database
}
但是,老实说,将此路径添加到数据库中没有任何意义。您可以为您的Eloquent模型使用accessor,并假设您使用everywhere Eloquent,根本不接触数据库

编辑

好的,对于注释中的这种情况,问题是您在这里不使用引用,您应该这样使用它:

$models = DB::select(DB::raw("SELECT ... etc));
foreach($models as &$model){
   $model['picture'] = '/images/models/' . $model['picture'];
}
unset($model)

使其真正保存在模型数组中。

不,我不想在数据库中修改。我想动态修改它,以便将数据传递给视图。否则,由于路径不正确,图片将不会显示。然而,是的,我可以直接将路径添加到视图中……嗯,unset$模型不应该在循环中吗?@Chriz74不,它是unset引用。如果您有疑问,请参阅PHP手册-