数组到字符串转换 Laravel 5.2
Posted
技术标签:
【中文标题】数组到字符串转换 Laravel 5.2【英文标题】:Array to string conversion Laravel 5.2 【发布时间】:2016-09-02 16:37:36 【问题描述】:我正在处理项目,我需要帮助将数组列表转换为字符串。
这是我的控制器:
public function editprofila($id)
$user = User::findOrFail($id);
$gradovi = Grad::all();
$nazivGrada = DB::table('grad')
->select('grad.naziv_grada')
->join('users', 'grad.id', '=', 'users.id_grada')
->where('grad.id', '=', Auth::user()->id_grada)
->get();
if ($user->id == Auth::user()->id || Auth::user()->legenda == 1)
return view('korisnik.uredivanje_profila',
compact('user', 'gradovi', 'nazivGrada')
);
如何从 nazivGrada 的选项中选择一个值,例如 eng。名称城市?
<select class="form-control" name="id_grada" id="id_grada">
@foreach($gradovi as $grad)
<option value="$grad->id" selected="">$grad->naziv_grada</option>
@endforeach
<option value="Auth::user()->id_grada" selected="selected">''.$nazivGrada.''</option>
</select>
我的问题是$nazivGrada
是这样的数组列表,
["naziv_grada":"Rovinj"]
我得到一个错误; 数组到字符串的转换.
【问题讨论】:
【参考方案1】:如果你这样做会发生什么
$nazivGrada = DB::table('grad')
->select('grad.naziv_grada')
->join('users', 'grad.id', '=', 'users.id_grada')
->where('grad.id', '=', Auth::user()->id_grada)
->first();
然后在你看来:
<option value="Auth::user()->id_grada" selected="selected"> $nazivGrada->naziv_grada </option>
【讨论】:
如果他只能得到 1 个结果,那么您的解决方案是正确的。否则他会错过一些其他的结果。 对。否则他会像第一个那样循环。但是通过看到就是答案,我认为这不是他正在寻找的。span> 【参考方案2】:您不需要额外的 $nazivGrada 查询。
在模板中你可以简单地做:
@foreach($gradovi as $grad)
<option value="$grad->id" selected=" $grad->id == Auth::user()->id_grada ? 'selected' : '' ">$grad->naziv_grada</option>
@endforeach
【讨论】:
以上是关于数组到字符串转换 Laravel 5.2的主要内容,如果未能解决你的问题,请参考以下文章
laravel - ErrorException 数组到字符串的转换
“数组到字符串的转换”错误 Laravel - 尝试将数组保存到数据库