数组到字符串转换 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 数组到字符串的转换

“数组到字符串的转换”错误 Laravel - 尝试将数组保存到数据库

Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]

Laravel 8:调用路由时数组到字符串的转换:列表

laravel 4验证器错误数组到字符串转换