我有一个问题,当在Laravel中调用一个关系时,我得到一个字符串而不是一个对象。而与同一模型的另一个关系会按预期返回一个对象。
class FdaFoiDev extends BaseModel {
protected $guarded = array();
public static $rules = array();
public $table = 'fda_foidev';
public function manufacturer() { return $this->belongsTo('Manufacturer'); }
public function model() { return $this->belongsTo('ManufacturerModel'); }
}
-
class ManufacturerModel extends BaseModel {
protected $guarded = array();
public static $rules = array();
}
-
class Manufacturer extends BaseModel {
protected $guarded = array();
public static $rules = array();
}
-
在控制器中:
$f = FdaFoiDev::find(23);
dd($f-> manufacturer);
转储字符串:
string 'MEDTRONIC' (length=9) // the manufacturer_name field in the DB (first field after id in the related table)
,同时:
$f = FdaFoiDev::find(23);
dd($f-> model);
转储预期结果:
object(ManufacturerModel)[1260]
protected 'guarded' =>
array (size=0)
empty
protected 'validator' => null
public 'validationErrors' =>
object(Illuminate\Support\MessageBag)[1261]
.........
$f = FdaFoiDev::find(23);
dd($f-> manufacturer()); //adding parentntheses
返回一个对象,然而,我发现调用具有几乎相同的表结构的两个关系的特殊情况是返回不同格式的结果。我也使用以这种方式引用关系的包,而id真的想避免修改它。
关于可能导致这种情况的任何想法?还有其他地方可以定义如何返回关系吗?