数组到字符串的转换 Laravel 5.2

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/37092127/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 13:44:53  来源:igfitidea点击:

Array to string conversion Laravel 5.2

phparraysstringlaravel

提问by Ivan Peri?a Loga

I'm working on project, and I need help with converting array list to string.

我正在处理项目,我需要帮助将数组列表转换为字符串。

This is my controller:

这是我的控制器:

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')
        );
    }
}

How can select one value from options by nazivGrada such as eng. nameCity?

如何从 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>

My problem is that $nazivGradais Array list like this,

我的问题是$nazivGrada像这样的数组列表,

[{"naziv_grada":"Rovinj"}]

and I get an error; Array to string conversion.

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

回答by Jordan Plamondon

What is happening if you do

如果你这样做会发生什么

$nazivGrada = DB::table('grad')
        ->select('grad.naziv_grada')
        ->join('users', 'grad.id', '=', 'users.id_grada')
        ->where('grad.id', '=', Auth::user()->id_grada)
        ->first();

And then in you view:

然后在你看来:

<option value="{{Auth::user()->id_grada}}" selected="selected">{{ $nazivGrada->naziv_grada }}</option>

回答by TheDrot

You don't need the extra query for $nazivGrada.

您不需要对 $nazivGrada 进行额外查询。

In template you can simply do:

在模板中,您可以简单地执行以下操作:

@foreach($gradovi as $grad)
    <option value="{{$grad->id}}" selected="{{ $grad->id == Auth::user()->id_grada ? 'selected' : '' }}">{{$grad->naziv_grada}}</option>
@endforeach