Laravel 5.3 Я пытаюсь получить поля из таблиц пользователей и мобильных телефонов
таблица пользователей имеет идентификатор первичного ключа, а в моих мобильных таблицах есть поле users_id
, поэтому я хочу получить всеномера всех users_id
select u.*,m.mobile,ud.name from users u
left join userdetails ud on ud.user_id = u.id
left join mobiles m on m.users_id = u.id
where m.mobiletypes_id = 1 and m.deleted_by is null
Я пытаюсь выполнить приведенный выше запрос в красноречивом виде, но сталкиваюсь с ошибкой неопределенного свойства.1012 * моя мобильная модель
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class mobile extends Model
{
protected $primaryKey = 'mobiles_id';
protected $fillable = ['mobile', 'mobiletypes_id', 'users_id', 'created_by', 'updated_by', 'deleted_by', 'created_at', 'updated_at'];
}
мой контроллер
публичная функция employeeview () {// $ user = User :: all ();// получить всех пользователей
$userdetails = User::with(['mobile' => function ($query) {
$query->where('mobiletypes_id', 1);
} ,'userdetails'])->get(); // get all userdetails
// $mobile = User::with('mobile')->get();
//$userdetails = User::all();
//return $user;
//return view('employeeview',compact('userdetails'));
return view('employeeview')->with('userdetails', $userdetails);
}
мой взгляд employeeview.blade.php
@foreach($userdetails as $u)
<tr>
<td>{{$u->id}} </td>
<td>{{$u->userdetails->name}} </td>
<td>{{$u->email}}</td>
@foreach($u->mobile as $um)
<td>{{$um->mobile}}</td>
@endforeach
</tr>
@endforeach