Reputation: 35
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
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
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