假設,有兩個表“empData”和“區”。'empData' 表包含'id', 'name', 'empDistrict'('empDistrict' 包含對應的區id)。和'District'表包含所有地區的'id','name'。
現在我想獲取學生的詳細資訊,包括學區名稱。(注意:在 empDatatable 中,我只包含區 id)我怎樣才能做到這一點?
我的實施 我的地區模型
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Models\EmpData;
class District extends Model
{
protected $guarded = [];
public function empdistrict(){
return $this->belongsTo(EmpData::class, 'empDistrict', 'id');
}
}
我的 EmpData 控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\EmpData;
use App\Models\District;
class empDataController extends Controller
{
$data= EmpData::all();
return view('frontend.allusermindata',compact(['data']));
}
我在其中顯示資料的 Blade 檔案
foreach($data as $user){
<p>Name : {{ $user->empName }}</p>
<p>District : {{ $user->empdistrict()->name}}</p>
}
但我得到這個錯誤
試圖獲取非物件的屬性“名稱”
uj5u.com熱心網友回復:
foreach($data as $user){
<p>Name : {{ $user->empName }}</p>
<p>District : {{ $user->empdistrict->name}}</p>
}
呼叫該方法會回傳一個 BelonsTo 類實體。通過將其作為屬性呼叫來使用 laravel 魔術方法。
在這個問題上,你會遇到性能問題,最好在同一個查詢中加載資料。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\EmpData;
use App\Models\District;
class empDataController extends Controller
{
$data= EmpData::with('empdistrict')->get();
return view('frontend.allusermindata', compact(['data']));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/490518.html
