laravel - ORM 在 laravel 的默认用户控制器和用户模型中不起作用
问题描述
我想获得用户明智的角色。这是我面临错误....
UserController.php(用户控制器文件)
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\UserRequest;
use App\Employee;
use App\Role;
use App\User;
use App\Site;
use App\Client;
use App\ProjectType;
use App\UserPermission;
use Auth;
use DB;
use App\Project;
class UsersController extends BaseController {
public function __construct() {
$this->isSetClientAndProjectType();
$data = User::with('Role')->first();
echo "<pre>";print_r(json_decode($data)); die;
}
}
User.php(用户模型文件)
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Authenticatable {
use SoftDeletes;
use Notifiable;
protected $fillable = [
'name', 'role_id', 'password', 'siteid', 'email', 'status', 'allowed_to_bypass_pm', 'allowed_to_bypass_admin'
];
protected $hidden = [
'password', 'remember_token',
];
// Get users roles
public function Role() {
return $this->hasMany('App\Role', 'role_id', 'id');
}
}
错误是
我该如何解决这个错误?
帮帮我,伙计们。
谢谢你。
解决方案
如果用户有很多“角色”,它应该是public function roles()
.
您已定义:
单个用户有一个 role_id
因此,您需要:
如果用户只有一个角色,它将是:
public function role() {
return $this->belongsTo('App\Role');
}
Role 模型的反面是:
public function users() {
return $this->belongsToMany('App\User');
}
由于许多用户可以具有相同的角色。
希望这可以帮助。
推荐阅读
- r - 唯一.default(x)中的R Plotly错误:唯一()仅适用于向量
- unity3d - 迷你地图相机显示黑色图像而不是渲染相机视图
- android - 由 Camera2 字节巨大的位图
- python - NeuralNetwork 类无法访问其属性
- angular - 由于这个奇怪的问题,无法运行 ionic 3 build
- google-classroom - 授权 API 访问所有课程和所有课程作业需要哪些帐户权限
- javascript - 以编程方式设置输入值将在其中包含“\”
- python - 元组索引超出范围?
- java - 如何使用primefaces gMap实现谷歌地图绘制路线
- uwp - C# UWP KeyDown 事件 e.Handled 奇怪的行为