Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用雄辩的ORM laravel连接多个表模型_Php_Laravel_Eloquent - Fatal编程技术网

Php 使用雄辩的ORM laravel连接多个表模型

Php 使用雄辩的ORM laravel连接多个表模型,php,laravel,eloquent,Php,Laravel,Eloquent,这是我的问题: $batchDetails=BatchModel::join('class', 'batch.Class', '=', 'class.AutoID') ->get() ->toArray(); <?php class BatchModel extends Eloquent { protected $primaryKey = 'AutoID'; protected $table = 'batch'; protected

这是我的问题:

$batchDetails=BatchModel::join('class', 'batch.Class', '=', 'class.AutoID')
    ->get()
    ->toArray();
<?php
class BatchModel extends Eloquent
{
    protected $primaryKey = 'AutoID';
    protected $table = 'batch';  
    protected $fillable = array('Class','batch','Statedate','Enddate');

    public $timestamps = false;

    public function batch(){
        return $this->hasMany('BatchModel', 'Class');
    }

    public static $rules = array(     
        'Class' => 'required',         
        'batch' => 'required', 
        'Statedate' => 'required', 
        'Enddate' => 'required', 
        );

}
<?php
class ClassModel extends Eloquent
{

    protected $primaryKey = 'AutoID';
    protected $created_at = 'CreatedAt';
    protected $updated_at = 'UpdatedAt';
    protected $table = 'class';
    protected $guarded = array('ClassName');
    protected $fillable = array('ClassName', 'ClassSection', 'ClassCode');

     public function classModel(){ 
        return $this->belongsTo('ClassModel', 'Class');
    }

    public $timestamps = true;


    public static $rules = array(
        'ClassName' =>  array('required', 'unique:class','regex:/^./'),
        'ClassSection' => 'required',
        'ClassCode' => array('required', 'unique:class')
                             );


}
批量模型:

$batchDetails=BatchModel::join('class', 'batch.Class', '=', 'class.AutoID')
    ->get()
    ->toArray();
<?php
class BatchModel extends Eloquent
{
    protected $primaryKey = 'AutoID';
    protected $table = 'batch';  
    protected $fillable = array('Class','batch','Statedate','Enddate');

    public $timestamps = false;

    public function batch(){
        return $this->hasMany('BatchModel', 'Class');
    }

    public static $rules = array(     
        'Class' => 'required',         
        'batch' => 'required', 
        'Statedate' => 'required', 
        'Enddate' => 'required', 
        );

}
<?php
class ClassModel extends Eloquent
{

    protected $primaryKey = 'AutoID';
    protected $created_at = 'CreatedAt';
    protected $updated_at = 'UpdatedAt';
    protected $table = 'class';
    protected $guarded = array('ClassName');
    protected $fillable = array('ClassName', 'ClassSection', 'ClassCode');

     public function classModel(){ 
        return $this->belongsTo('ClassModel', 'Class');
    }

    public $timestamps = true;


    public static $rules = array(
        'ClassName' =>  array('required', 'unique:class','regex:/^./'),
        'ClassSection' => 'required',
        'ClassCode' => array('required', 'unique:class')
                             );


}
您可以使用它

class BatchModel extends Eloquent {
    public function classModel(){ // normally I'd use only "class" but that's a reserved word so..
        return $this->belongsTo('ClassModel', 'Class');
    }
}


class ClassModel extends Eloquent {
    protected $primaryKey = 'AutoID';
    public function batch(){
        return $this->hasMany('BatchModel', 'Class');
    }
}
我不确定是否一切都对,但应该是这样的。现在可以这样查询:

$batchDetails = BatchModel::with('classModel')->get();

我有以下错误“调用未定义的方法illumb\Database\Query\Builder::classModel()”,但您确实将方法
classModel()
添加到了
BatchModel
?是的,我在类和批处理模型中添加了方法。该错误通常仅在
with()
中的名称与方法名称不相同(或该方法根本不存在)时出现。您可以检查拼写错误并重试:
$batch=BatchModel::first()$批量->类模型()并查看是否有错误。我可以将其放在哪里?在控制器中?