php - laravel5 中 关联查询
怪我咯
怪我咯 2017-04-10 15:40:37
[PHP讨论组]

有这么一组数据

一个学生表users 和 学生成绩表 grades 两个表关联

在方法里面是这样的

public function index()
{
    $result = User::where('is_admin', 0);
    $users = $result->get();
    $count = $result->count();       
    return view('admin.list', compact('count', 'users'));
}

视图循环是这样的

 @foreach ($users as $user)
    <tr>
        <td>{{$user->id}}</td>
        <td>{{$user->name}}</td>
        <td>{{$user->grade->math}}</td>
        <td>{{$user->grade->english}}</td>
        <td>{{$user->grade->c}}</td>
        <td>{{$user->grade->sport}}</td>
        <td>{{$user->grade->think}}</td>
        <td>{{$user->grade->soft}}</td>
    </tr>
@endforeach

得到的结果是 报错 Trying to get property of non-object (View:

$user->grade->math

是找不到的 怎么做关联一起呢

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
阿神

User.php

public function grade()
    {
        return $this->hasOne('App\Grade');
    }

Grade.php

public function user()
    {
        return $this->belongsTo('App\User');
    }
伊谢尔伦
phpUser.php定义
public function Grade()
    {
        return $this->hasOne("App\Modules\Grade", 'user_id', 'id');
    }
controller.php
public function index()
{
    $result = User::where('is_admin', 0);
    $users = $result->grade()->get();
    $count = $result->count();       
    return view('admin.list', compact('count', 'users'));
}

view:
@foreach ($users as $user)
    <tr>
        <td>{{$user->id}}</td>
        <td>{{$user->name}}</td>
        <td>{{$user->math}}</td>
        <td>{{$user->english}}</td>
        <td>{{$user->c}}</td>
        <td>{{$user->sport}}</td>
        <td>{{$user->think}}</td>
        <td>{{$user->soft}}</td>
    </tr>
@endforeach

黄舟
先保证Model中有正确的hasOne和belongsTo
$data = $user->grade()->get();

然后取$data的数据进行循环

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号