【问题标题】:Array to string conversion Laravel 5.2数组到字符串转换 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"}]

我得到一个错误; 数组到字符串的转换.

【问题讨论】:

    标签: php arrays string laravel


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2020-09-10
      相关资源
      最近更新 更多