考慮以下幾點:
定義回退功能,以您的型號:
public function __call($name, $arguments)
{
if (strpos($name, 'modulesData') !== false) {
$nameArray = explode(' ', $name);
$moduleName = ucfirst($nameArray[1]);
$moduleClass = 'App\Modules\\' . $moduleName . '\\' . $moduleName;
return $this->modulesData($moduleClass);
} else {
return parent::__call($name, $arguments);
}
}
使用with
用這種方法功能:
$tal = \App\Model::with('modulesData ModuleName')->get();
(即'ModuleName'是您要用作關係參數的模塊的名稱)。
這樣,您可以用字符串「modulesData_moduleName
」加載。當調用with
時,它將找不到該函數並將回退到__call
,該文件將提取「moduleName」並將其作爲參數調用關係「modulesData」。
哇,我甚至不知道你可以傳遞一個參數給你的關係。 – Amarnasan
是的,它與參數一起工作..我甚至需要這個,因爲我使用我的模型的動態模塊關係。 – goldlife