我正在Laravel 5.2中使用多態。我想設置模型字符串的名稱。有si代碼:Laravel:將字符串設置爲模型的名稱
switch ($passport->element_type) {
case 'Window':
$windows = Window::find($passport->element_id);
break;
case 'Floor':
$floor = Floor::find($passport->element_id);
break;
case 'Wall':
$wall = Wall::find($passport->element_id);
default:
break;
}
};
你可以看到變量「$ passport-> element_type」給了我模型的名字。我不想用開關盒來做。是否有可能做這樣的事情:
$ passport-> element_type :: find($ passport-> element_id);
或者我該如何使用變量(element_type)作爲模型的名稱?
你使用的是什麼版本的PHP? –
https://adamwathan.me/2015/09/03/pushing-polymorphism-to-the-database/ Adam Wathan描述了這個井的解決方案。我沒有時間把它變成答案,所以我只是把鏈接放在這裏。 –