У меня есть модель Todo и Tbl_leads и там соответствующие таблицы todos и tbl_leads. Когда я пытаюсь указать имя лида, у меня возникает ошибка.
#This is Tbl_leads model
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Tbl_leads extends Model
{
//Table Name
protected $table = 'tbl_leads';
//Primary key
public $primaryKey = 'ld_id';
//Timestamps
public $timestamps = true;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'ld_id', 'first_name', 'last_name', 'email',
];
public function tasks() {
$this->hasMany('App\Todo', 'lead_id','ld_id');
}
}
Это модель Todo
<?php
namespace App;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Todo extends Model
{
use SoftDeletes;
protected $fillable = [
'title',
'description',
'user_id',
'outcome_id',
'lead_id',
'tasktype_id',
'due_time',
'complete_time',
];
protected $casts = [
'due_time' => 'datetime',
'complete_time',
];
public function lead() {
$this->belongsTo('App\Tbl_leads', 'lead_id');
}
}
Это мой метод индекса
public function index()
{
$tasks = Todo::latest()->paginate(5);
return view('taskmanagement.cruds.index',compact('tasks'));
}
это лезвие, где я хочу получить имя из модели Tbl_leads
div class="card-body">
<ul class="todo-list" data-widget="todo-list">
@forelse($tasks as $task)
<div class="col-3">
@if(!empty($task->lead_id))
<div>
<small>Related to</small>
</div>
<div class="mt-0">
<a href="#">
<strong class="mx-4">{{$task->lead->first_name}}</strong>
</a>
</div>
@endif
</div>
</div>
</div>
</li>
@empty
<p class="text-center">No Tasks is available</p>
@endforelse
Пожалуйста, может кто-нибудь подскажет мне, что я сделал не так. И я знаю название модели, и там первичный ключ немного другой не установлен в соответствии с laravel. Правильны ли мои модельные отношения?