laravel5.7列表的雄辩关系

vh0rcniy  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(298)

我正在尝试使用join获取数据集,我想使用雄辩的自动方式,而无需手动查询。我也做了关系,但当我试图列出加入的数据时,它却以另一种方式做了。
laravel 5.7版mysql数据库
已更新,已添加数据库架构。我的表:

mytab1表:

错误:
“sqlstate[42s22]:找不到列:“where子句”(sql:select*from)中的1054未知列”“mytab1.mytab3\u id”“。” myTab1 哪里 myTab1 . my_tab3_id 在(1,2)中
mytab3.php文件

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class myTab3 extends Model
{
    //
    protected $table = 'my_tab3s';
    public $timestamps = true;

    protected $fillable = [
    'coolField',
    'muhCurrentDate',
    'rast',
    'myTab1_id'
  ];

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

mytab1.php文件

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class myTab1 extends Model
{
    //
    public function scopeBigger($query){
        return $query->where('id','>','1');
    }
    public function scopeHasLetterZ($query){
        return $query->where('someField','like','%z%');
    }

    public function gimmeAll(){
        return myTab1::All();
    }
    protected $table = 'myTab1';
    public $timestamps = true;

    protected $fillable = [
    'someField'
  ];

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

mytab3controller.php索引方法

public function index()
    {

        /*$dataSet = myTab3::All();*/
        //$dataSet->myTab1()->get();
        $dataSet = myTab3::with('myTab1')->get();
        return view('myTab3.index',compact('dataSet'));
    }

查看部件

@foreach($dataSet as $data)
        <tr>
            <td>{{$data->id}}</td>
            <td>{{$data->coolField}}</td>
            <td>{{$data->muhCurrentDate}}</td>
            <td>{{$data->created_at}}</td>
            <td>{{$data->updated_at}}</td>
            <td>{{$data->rast}}</td>
            <td>{{$data->myTab1->someField}}</td>
        </tr>
        @endforeach
mmvthczy

mmvthczy1#

如果没有数据库很难说,但我认为你改变了你的关系,这应该是一个 belongsTo 为了 myTab3 以及 hasOne 为了 myTab1 编辑:
尝试使用:

public function myTab1(){
    return $this->belongsTo('App\myTab1', 'myTab1_id');
}

相关问题