Laravel 8 獲取關(guān)聯(lián)

2021-07-19 11:36 更新

一旦定義了表和模型,就可以通過模型訪問此關(guān)聯(lián)。比如,要獲取文章圖片,可以使用 image 動態(tài)屬性:

$post = App\Models\Post::find(1);

$image = $post->image; 

還可以通過訪問執(zhí)行 morphTo 調(diào)用的方法名來從多態(tài)模型中獲知父模型。在這個例子中,就是 Image 模型的 imageable 方法。所以,我們可以像動態(tài)屬性那樣訪問這個方法:

$image = App\Models\Image::find(1);

$imageable = $image->imageable; 

Image 模型上的 imageable 關(guān)系將返回 Post 實(shí)例或 User 實(shí)例,具體取決于模型擁有圖像的類型。如果需要為 morphTo 關(guān)系指定自定義的 typeid 列,請始終確保將關(guān)系名稱(應(yīng)與方法名稱完全匹配)作為第一個參數(shù)傳遞:

/**
 * 獲取 image 實(shí)例所屬的模型
 */
public function imageable()
{
    return $this->morphTo(__FUNCTION__, 'imageable_type', 'imageable_id');
} 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號