我有一个像这样的原始查询:
$models = DB::select(DB::raw("SELECT ... etc));
我想修改生成的集合中的数据(我不认为它是一个集合)。
无论如何,假设我想将所有$ model->图片修改为'whatever / path'之类的内容。 $模型 - >图像
我尝试了这样,它没有修改任何东西但它没有吐出任何错误:
foreach($models as $model){
$model['picture'] = '/images/models/' . $model['picture'];
}
我错过了什么?
答案 0 :(得分:1)
好吧,对我来说,你应该使用Eloquent来做这样的事情就足够了:
$models = YourModel::all();
foreach($models as $model){
$model->picture = '/images/models/' . $model->picture;
$model->save(); // here you save it to database
}
但是老实说,将此路径添加到数据库并没有任何意义。您可以为您的Eloquent模型使用访问器,并假设您在任何地方使用Eloquent都不会触摸数据库。
修改强>
好的,所以对于这种情况(来自评论)问题是你不在这里使用引用,你应该像这样使用它:
foreach($models as &$model){
$model['picture'] = '/images/models/' . $model['picture'];
}
unset($model)
使其真正保存在模型数组中。