Ivan Periša Loga
Ivan Periša Loga

Reputation: 35

Array to string conversion Laravel 5.2

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?

<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 $nazivGrada is Array list like this,

[{"naziv_grada":"Rovinj"}]

and I get an error; Array to string conversion.

Upvotes: 1

Views: 6403

Answers (2)

TheDrot
TheDrot

Reputation: 4337

You don't need the extra query for $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

Upvotes: 0

Jordan Plamondon
Jordan Plamondon

Reputation: 345

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>

Upvotes: 2

Related Questions