Laravel 获取关系数据

初学者

我正在尝试获取关系数据,但Trying to get property 'district_name' of non-object出现错误。我只是在学习laravel。

在此处输入图片说明

这是我的模型:

自由学校

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class LibSchool extends Model
{
    function getAllSchool()
    {
        return LibSchool::all();
    }

    public function district()
    {
        return $this->belongsTo('App\LibDistrict');
    }
}

自由区

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use App\LibSchool;

class LibDistrict extends Model
{
    public function schools()
    {
        return $this->hasMany('App\LibSchool');
    }
}

在此处输入图片说明 在此处输入图片说明

控制器

class SchoolController extends Controller
{
    public function index()
    {
        $q = Input::get('q');
        if ($q != "") {
            $schools = LibSchool::where('school_name', 'LIKE', '%' . $q . '%')
                        ->with('district')
                        ->orWhere('school_id', 'LIKE', '%' . $q . '%')
                        ->orWhere('address', 'LIKE', '%' . $q . '%')
                        ->orWhere('school_head', 'LIKE', '%' . $q . '%')
                        ->orWhere('level', 'LIKE', '%' . $q . '%')
                        ->orderBy('school_name', 'asc')
                        ->paginate(15)->appends('q', $q);
        } else {
            $schools = LibSchool::with('district')
                                ->orderBy('school_name', 'asc')
                                ->paginate(15);
        }
        return view('schools.index')->with('data', ['schools' => $schools, 'q' => $q]);
    }
}

看法

<table class="table table-hover table-bordered table-striped">
    <tr>
        <th>School ID</th>
        <th>School NAME</th>
        <th>Address</th>
        <th>School Head</th>
        <th>Level</th>
        <th>Division</th>
        <th>District</th>
    </tr>
    @if($data['schools']->total() > 0)
    @foreach($data['schools'] as $school)
    <tr>
        <td>{{$school->school_id}}</td>
        <td>{{$school->school_name}}</td>
        <td>{{$school->address}}</td>
        <td>{{$school->school_head}}</td>
        <td>{{$school->level}}</td>
        <td>{{$school->district->district_name}}</td>
    </tr>
    @endforeach
    @else
    <td colspan="7" class="text-danger">No records</td>
    @endif
</table>
{{$data['schools']->links()}}
苏滨释迦

您给定代码中的问题是您使用了

public function district()
{
return $this->belongsTo('App\LibDistrict');
}

假设您libdistrict_iddistrict表中外键但是看看你的表,你似乎已经将它分配为lib_district_id. 所以,现在你必须明确地输入正确的列名,如下所示:

public function district()
{
return $this->belongsTo('App\LibDistrict', 'lib_district_id', 'id');
}

注意:最好使用 laravel 提供的命名约定。这样我们的代码就可以少得多而且干净。

希望这可以帮助!!玩得开心编码!!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询以获取Laravel中的关系数据

来自分类Dev

从hasOne关系Laravel 4.1获取hasMany关系数据

来自分类Dev

从雄辩的构建者laravel 7获取关系数据

来自分类Dev

Laravel关系数据返回

来自分类Dev

在Laravel 5.7中获取与各自的关系到关系数据

来自分类Dev

Laravel关系数据库连接

来自分类Dev

laravel嵌套关系数据透视表

来自分类Dev

Laravel无法获取所选配置文件的关系数据

来自分类Dev

返回laravel中的所有关系数据

来自分类Dev

雄辩的laravel中的关系数据库

来自分类Dev

无法在Laravel中检索一对多关系数据

来自分类Dev

如何在Laravel 4.2中删除关系数据

来自分类Dev

Laravel:一对多关系数据更新

来自分类Dev

Laravel 雄辩的关系数据(急切加载)

来自分类Dev

从关系中获取数据,Laravel

来自分类Dev

Laravel根据关系获取数据

来自分类Dev

Laravel通过另一个关系检索关系数据

来自分类Dev

使用Laravel 4在关系数据库中存储动态数据

来自分类Dev

Laravel从多对多关系中获取数据

来自分类Dev

Laravel获取关系返回错误的数据

来自分类Dev

如何从Laravel中的关系获取数据?

来自分类Dev

在laravel中通过javascript获取数据关系

来自分类Dev

在 Laravel 中使用模型关系获取数据

来自分类Dev

Laravel 5.1将关系数据加载到所选行中

来自分类Dev

Laravel Eloquent-保存/更新相关的一对多关系数据

来自分类Dev

3关系数据库外观以及如何通过Laravel Eloquent创建查询?

来自分类Dev

如何在laravel中按层次结构顺序显示此一对多关系数据?

来自分类Dev

如何在Laravel中通过ID选择不同表上的关系数据

来自分类Dev

如何在My Laravel Vue项目中获得多个关系数据

Related 相关文章

热门标签

归档