2016-05-23 169 views
1

我有mysql表“测试”有三列,将数组以雄辩的模型Laravel

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 

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

+0

您可以使用模型的'补()'方法来该数组转换为填充模型 –

+0

我不是来填充,我试图地图... – Eirtaza

+0

可以ü请举例 – Eirtaza

回答

1

那么你可以用模型类,没有属性:

$dummy = new \App\Test; 

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

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

true标志的方法是告诉雄辩的实例已存在在数据库中,所以你可以继续使用它。现在,你可以这样做:

$desiredResult->country //'1' 
+0

以及如果我有一个包含多个$属性(数组数组)的数组。我将如何实例化它们都没有迭代,所以我可以这样做$ desiredResult-> firstI() - >国家; – Eirtaza