在Laravel中将数组转换为雄辩模型

时间:2016-05-23 15:13:54

标签: php mysql laravel collections eloquent

我有mysql表'测试'有三列,

1.sno    2.name    4.country

这段代码很容易理解

$person = \App\Test::find(1);
$person->country;         //Defined in Test eloquent model

现在我想做这样的事情:

$p = ['sno' => 1, 'name' => 'Joe', 'country' => '1' ];
$p->country;      //Return relevent column form countries table as defined in Model

要记住的是,我尝试映射的用户已经存在于数据库表中。如何将数组转换为雄辩的模型?

1 个答案:

答案 0 :(得分:2)

您可以实例化没有属性的模型类:

$dummy = new \App\Test;

然后你可以调用newInstance()方法:

$attributes = ['sno' => 1, 'name' => 'Joe', 'country' => '1' ];
$desiredResult = $dummy->newInstance($attributes, true);

方法中的true标志正在说明该实例已存在于数据库中,因此您可以继续正常使用它。现在你可以做到:

$desiredResult->country //'1'