在 laravel 5.8 中进行方法调用时,它不会向我返回数据

根据 Laravel 的文档在我创建的模型中创建关系时出现了我的问题。


我有我的区号表和我的电话表,一个区号可以属于多部电话,但一部电话只有一个区号,这使我成为一对多的关系


我将向您展示我的模型和它们之间的关系。


电话.php


/**

 * The table associated with the model.

 * 

 * @var string

 * @author Luis Morales

 */

protected $table = 'PHONES';


/**

 * The primary key associated with the table.

 *

 * @var string

 * @author Luis Morales

 */

protected $primaryKey = 'PHONES_ID';


/**

 * The attributes that are mass assignable.

 *

 * @var array

 * @author Luis Morales

 */

protected $fillable = [

    'AREACODES_ID', 'PHONE', 'DATE', 'USERS_ID',

];


/**

 * Indicates if the model should be timestamped.

 *

 * @var bool

 * @author Luis Morales

 */

public $timestamps = false;


/**

 * Get the user for the phone

 * 

 * @author Luis Morales

 */

public function users(){

    return $this->belongsTo('App\User');

}


/**

 * Get the area code for the phone

 * 

 * @author Luis Morales

 */

public function areacodes(){

    return $this->belongsTo('App\AreaCode');

}   

区号.php


/**

 * The table associated with the model.

 * 

 * @var string

 * @author Luis Morales

 */

protected $table = 'AREACODES';


/**

 * The primary key associated with the table.

 *

 * @var string

 * @author Luis Morales

 */

protected $primaryKey = 'AREACODES_ID';


/**

 * The attributes that are mass assignable.

 *

 * @var array

 * @author Luis Morales

 */

protected $fillable = [

    'CODE', 'CITY', 'STATESZONE_ID',

];


/**

 * Indicates if the model should be timestamped.

 *

 * @var bool

 * @author Luis Morales

 */

public $timestamps = false;


/**

 * Get the phone for the area codes

 *

 * @author Luis Morales

 */

public function phones(){

    return $this->hasMany('App\Phone');

}

在我的控制器中,调用如下


GenerateNumbersController.php


$phones = Phone::where('DATE',$searchOrCreate)

                ->chunk(500,function($phone){

                        foreach ($phone as $p) {

                        dd($p->areacodes);

                    }

        });

searchOrCreate 变量有一个日期格式的值,我对 $ phone 做了一个 dd 并且它显示的所有关系都是空的


繁星淼淼
浏览 129回答 2
2回答

慕沐林林

你调用了错误的方法。dd($p->区号); 因为在您的手机型号中,您的型号名称是与您调用的功能不匹配的区号。解决方案更改 dd($p->areacode);为dd($p->areacodes);

猛跑小猪

更改您的 return 语句以 return $this->belongsTo( 'App\AreaCode', 'AREACODES_ID', 'PHONES_ID');
打开App,查看更多内容
随时随地看视频慕课网APP