升级到L5并喜欢它!然而,目前面临着多态变形关系的问题。在 Users 表的可用列中,我需要包含命名空间值(例如" App \ Employee"而不仅仅是&#34 ;员工")让多态关系起作用。
感觉我错过了什么.. 如何避免强制在表格中存储命名空间值?:)
PS:很清楚其他人正在努力解决类似的问题(例如Laravel 5 namespaces),但没有看到任何与避免在表格中存储命名空间有关的内容。BaseController
<?php namespace App\Http\Controllers;
use App\Client;
use App\User;
...
的HomeController
$user = User::with('userable')->get();
foreach ($user as $u){
var_dump($u->userable->mobile);
}
用户模型
public function userable()
{
return $this->morphTo();
}
客户端模型
public function user()
{
return $this->morphOne('App\User', 'userable');
}
员工模式
public function user()
{
return $this->morphOne('App\User', 'userable');
}
答案 0 :(得分:0)
结束在用户表中创建单独的列。一个用于角色(例如管理员,员工等)和另一个用于 userable_type 的列(例如&#39; \ App \ Admin&#39;)
protected $morphClass
似乎有希望 (Polymorphic Eloquent relationships with namespaces)但已知过反转关系中的错误(Laravel 5 namespaces)
即使后者也不是很优雅 - 所以在解决之前,我会选择两列方法 - 希望这有助于其他人!