我具有以下users
表结构:
id
email
....
status // foreign key from tbl_status
现在在我的tbl_status
中:
id
name
description
现在,我想创建一个关系,如果我在users
表中的状态为1,我想得到它的名字。我努力了:
在我的User
模型中:
class User extends Model
{
protected $fillable = [
'name', 'email', 'password', 'status'
];
public function userstatus()
{
return $this->hasOne('App\Status', 'id', 'status');
}
}
在Status
模型中:
class Status extends Model
{
protected $fillable = [
'name', 'description'
];
}
通过...获取记录时
return User::with("userstatus")->paginate(10);
...即使每个用户的默认状态为1,并且状态表的ID为1,且带有值,它始终返回状态为null
。
参考方案
这种关系是倒退的。将status
外键放在users
表上可创建以下关系:
User
属于Status
Status
有许多User
但是,问题显示了hasOne()
的User
模型上的userstatuses()
关系。为此,tbl_status
将需要一个user_id
字段,但这意味着Status
只能属于一个User
。
相反,userstatus()
上User
的正确关系应为belongsTo()
:
public function userstatus()
{
return $this->belongsTo(App\Status::class, 'status');
}
然后,我们可以在User
模型上使用适当的关系:
$user = User::with('userstatus')->find(1);
$user->status; // 1 (foreign key ID)
$user->userstatus->name; // "status name"
$user->userstatus->description // "This is the status description."
PHP Laravel从另一个驱动器读取文件 - php我目前正在学习Laravel。我想知道是否有一种方法可以在Laravel中使用Storage::从另一个硬盘访问文件(使用Windows)。例如,我在驱动器C:上安装了带有Laravel的Xampp,但是我想访问网站目录之外的E:上的文件。我试过使用Storage::files('E:')和File::files('E:…
检查对象是否已在集合中-Laravel - php当我循环一系列不同的结果时,我希望将对象添加到新集合中。查询:$osRed = Item::where('category', 'Hardware') ->where(function ($query) { $query->where('operating_system', '…
laravel Hash::make继续给出不同的结果 - php我想在laravel 4中使用身份验证我改了桌子和莫贝尔的名字当用户注册时,我拥有密码并将其保存,哈希为:$password = Hash::make(Input::get('password')); 然后当用户登录时,我想先对他/她进行身份验证。我这样做是这样的:if (Auth::attempt(array('usernam…
Laravel打印日志 - php我正在尝试在控制台上打印日志:我输入了:use Log; 然后在控制器中使用 Log::info('test log'); 但它不打印任何日志。 参考方案 我认为您需要在运行后检查storage/logs/laravel.logLog::info('test log'); 希望这对您有帮助
Laravel 5错误报告抑制 - php在Laravel 4中,抑制E_NOTICE消息很容易;我似乎无法做到这一点,因为如果我添加error_reporting(E_ALL ^ E_NOTICE) 它只是被覆盖的任何地方。这似乎发生在这里:(index.php)$response = $kernel->handle( $request = Illuminate\Http\Request::…