Я новичок в Laravel и плохо разбираюсь в синтаксисе.Я хочу видеть значения другой таблицы через внешний ключ (идентификатор этой таблицы).
https://ibb.co/pXRFRHn Вы можете видеть на этой картинке, что я получаю идентификаторы под пользователем и классом.Я хочу названия, связанные с этими идентификаторами.
У меня есть таблицы разделов, пользователи и класс.Я использую class_id
& user_id в качестве внешнего ключа в таблице разделов.Когда я пытаюсь показать данные, я вижу идентификатор, но я хочу, чтобы имя и другие поля были извлечены из этого идентификатора.
Контроллер
public function index()
{
$sections = Section::all();
$classs = Classs::all();
$users = User::all();
return view('sections.index')->with('sections', $sections)->with('classs', $classs)->with('users', $users);
}
Blade / View
<div class="box">
<div class="box-header">
<h3 class="box-title">All Sections</h3>
</div>
<div class="box-body">
<table class="table table-responsive">
<thead>
<tr>
<th>Name</th>
<th>Class</th>
<th>User</th>
<th>Modify</th>
</tr>
</thead>
<tbody>
@foreach($sections as $cat)
<tr>
<td>{{$cat->title}}</td>
<td>{{$cat->class_id}}</td>
<td>{{$cat->user_id}}</td>
<td>
<button class="btn btn-info" data-mytitle="{{$cat->title}}"
data-myclassid="{{$cat->class_id}}" data-myuserid="{{$cat->user_id}}"
data-catid={{$cat->id}} data-toggle="modal" data-target="#edit">Edit
</button>
<button class="btn btn-danger" data-catid={{$cat->id}} data-toggle="modal"
data-target="#delete">Delete
</button>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
В частности ...
<td>{{$cat->class_id}}</td>
Отсюда я получаю идентификатор класса, но мне также нужно его имя.
{{$cat->(class_id)->name}}"
Однако это не сработало.
Я редактировал модели
class Classs extends Model
{
//
protected $fillable = [
'id',
'title',
];
public function section()
{
return $this->belongsTo('App\Section');
}
}
Модель секции
class Section extends Model
{
//
protected $fillable = [
'id',
'title',
'class_id',
'user_id',
];
public function classs()
{
return $this->hasMany('App\Classs');
}
}