亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

App\Todo::lead 必須返回關系實例,但返回了“null”。是否使用了“return”

App\Todo::lead 必須返回關系實例,但返回了“null”。是否使用了“return”

PHP
Cats萌萌 2023-03-04 18:00:32
我有 Todo 和 Tbl_leads 模型以及相應的表 todos 和 tbl_leads。當我嘗試使用潛在客戶名稱時,它會給我一個錯誤。#This is Tbl_leads model<?phpnamespace 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');    }}這是待辦事項模型<?phpnamespace 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>   @endforelsePlz 誰能告訴我我做錯了什么。而且我知道型號名稱和主鍵略有不同未相應地設置為 laravel。我的模型關系是否正確?
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

讓我向您澄清幾點。首先,您需要return在每個關系中添加一個。例如:


public function lead() {


    return $this->belongsTo('App\Tbl_leads', 'lead_id');

}

接下來您將展示這部分{{$task->lead->first_name}}稱為延遲加載的部分。這意味著如果您正在顯示的100記錄,Todo那么您正在查詢數據庫101時間。1對于Todo和100次lead->first_name。這不好。所以你可以在你的index方法中做些什么來傳遞你的關系,with()這樣它就會被預加載。意味著它將變成只是一個或兩個查詢或只是一個連接。所以會很快。你的方法的例子index......


public function index()

{

    $tasks = Todo::with('lead')->latest()->paginate(5);

    return view('taskmanagement.cruds.index',compact('tasks'));

}


查看完整回答
反對 回復 2023-03-04
  • 1 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號