Laravel显示数据

问题描述 投票:0回答:1

我是Laravel或任何MVC的新手。我创建了模型,我从web.php创建了路径,我使用Blade创建了视图,我创建了控制器并从单个模型中获取了所有数据。现在,我想做一个连接或类似的东西。

我想得到一些东西:名字|部分名称|状态。

在我的用户模型中我有:ID |名称| SectionID |状态

在我的模型中我有:ID | SectionID |活性

目前我创建了这样的控制器:

public function show($name)
{
    if(User::where('name', '=', $name)->exists())
    {
        return view('profile', ['user'=>User::where('name', $name)->first()]);

    }
    else
    {
        return 'User not found';
    } 
}

在我的刀片中,我得到的内容是这样的:{{ $user->name }}

php laravel join
1个回答
0
投票

嗯,你必须定义usersection模型之间的关系。请查看此主题,了解如何处理laravel Laravel Eloquent Relationships中的关系。

然后,无论何时获得用户,您都可以加载其在User模型上定义的任何关系。

在你的情况下,你正在执行两个不必要的数据库调用,所以我建议你看看qazxsw poi。

让我们说用户有一个部分你在用户模型中定义关系如下:

DRY principle

然后是剖面模型的反向关系:

public function sections(){

  return $this->hasOne(Section::class);

}

所以现在你在控制器中的方法可能看起来像这样:

public function user(){

  return $this->belongsTo(User::class);

}

通过这种方式,您可以加载与该用户关联的部分,以获取有关Laravel public function show($name){ return view('profile', ['user'=>User::with('sections')->where('name', $name)->firstOrFail()]); } 的更多信息

然后在刀片中,您可以访问eagerloadinguser模型中的任何属性。

© www.soinside.com 2019 - 2024. All rights reserved.