Laravel 5数组,在模型

时间:2015-12-22 08:30:27

标签: php arrays model laravel-5

拥有 键&值 即可。密钥名称是相同的数据库列名称。

索引中的键总数大于50.

  • 因此,无法逐个保存数据,如

    $user = new User;
    
    $user->name = 'John';
    ..........
    .......
    .......so on
    
    $user->save();
    

示例数组:

Array
(
    [name] => 'Amit',
    [age] => 25,
    [field1] => 'val1',
    ....
  [field33] => 'how'    ,
....
   [field54] => 'sumit'     
)

现在,我的问题是如何使用最简单的流程在模型中保存数据。

的信息:

  • 使用laravel 5

尝试:

$Plan=new Plans;
 $Plan->fill( $array);
 $Plan->save();

注意: 我知道填充不起作用,因为它未在该模型的可填充变量中定义

2 个答案:

答案 0 :(得分:3)

<script> $( "#form" ).validate({ rules: { phone: { require_from_group: [1, ".form-group"] }, email: { require_from_group: [1, ".form-group"] } } }); </script> 模型封装了对象的属性。因此,您只能通过Eloquentset)或$model->attribute方法更改/设置它们。大量分配属性的所有Eloquent方法都使用方法fill(array $attributes)

因此,有两种方法可以在数据库中插入带有数组的新的基于Eloquent的模型,一种使用fill()方法,另一种使用“{1}}方法。

方法1:批量分配

将属性fill()添加到模型中。然后你可以像这样使用质量分配。

protected $fillable = [ 'column_a', 'column_b', .. ];

或者您可以使用:

$Plan = new Plans;
$Plan->fill( $array );
$Plan->save();

方法2:QueryBuilder :: insert(array)

如果您没有在$plan = Plans::create( $array ); boot上注册任何creating方法(数据库不会触发这些),那么您也可以使用{{1在数据库中插入行。

created

答案 1 :(得分:2)

我不明白为什么你不想在模型的$fillable属性中定义数据库列/数组键,因为它只是一次性任务然后你就可以这样做只是:

$plan = Plans::create( $array );

另一种方法是,如果你有一个关联数组中的所有数据,其中的键与数据库表中的列匹配,你可以使用foreach循环:

$plan = new Plans;
foreach( $array as $key => $value )
{
    $plan->$key = $value;
}
$plan->save();