> 백엔드 개발 > PHP 튜토리얼 > laravel5 中 关联查询

laravel5 中 关联查询

WBOY
풀어 주다: 2016-06-06 20:33:30
원래의
1481명이 탐색했습니다.

有这么一组数据

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

在方法里面是这样的

<code>public function index()
{
    $result = User::where('is_admin', 0);
    $users = $result->get();
    $count = $result->count();       
    return view('admin.list', compact('count', 'users'));
}
</code>
로그인 후 복사
로그인 후 복사

视图循环是这样的

<code> @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
</code>
로그인 후 복사
로그인 후 복사

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

<code>$user->grade->math
</code>
로그인 후 복사
로그인 후 복사

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

回复内容:

有这么一组数据

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

在方法里面是这样的

<code>public function index()
{
    $result = User::where('is_admin', 0);
    $users = $result->get();
    $count = $result->count();       
    return view('admin.list', compact('count', 'users'));
}
</code>
로그인 후 복사
로그인 후 복사

视图循环是这样的

<code> @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
</code>
로그인 후 복사
로그인 후 복사

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

<code>$user->grade->math
</code>
로그인 후 복사
로그인 후 복사

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

User.php

<code>public function grade()
    {
        return $this->hasOne('App\Grade');
    }
</code>
로그인 후 복사

Grade.php

<code>public function user()
    {
        return $this->belongsTo('App\User');
    }
</code>
로그인 후 복사

<code>php</code><code>User.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

</code>
로그인 후 복사
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿