Laravel一对一关系 - php

我具有以下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::…