php - Laravel 5 数组, key 保存在模型中

标签 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'     
)

Now, my question is that how can i save data in an model using easiest process.

Info:

  • Using laravel 5

Try:

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

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

最佳答案

Eloquent模型已经封装了对象的属性。所以你只能通过 set 改变/设置它们( $model->attribute ) 或 fill(array $attributes)方法。所有批量分配属性的 Eloquent 方法都使用方法 fill() .

所以有两种方法可以在数据库中插入带有数组的新的基于 Eloquent 的模型,一种使用 fill()方法和一种方法。

方法一:批量赋值

添加属性protected $fillable = [ 'column_a', 'column_b', .. ];到你的模型。然后你可以像这样使用质量赋值。

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

或者你可以使用:

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

方法二:QueryBuilder::insert(array)

如果您没有任何 bootcreating 上注册的方法和 created (数据库不会触发这些)然后你也可以使用 QueryBuilder在数据库中插入行。

// insert one plan
DB::table('plans')->insert([ $array ]);
$plan = Plans::find( DB::getPdo()->lastInsertId() );

// insert multiple plans in one query
$plans = [ $plan_a_arr, $plan_b_arr, .. ];
DB::table('plans')->insert( $plans );

关于php - Laravel 5 数组, key 保存在模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411465/

相关文章:

c - 在 C 中使用加倍方案设置数组值的正确方法?

django - 如何验证 django URL 字段是否来自特定域或主机名?

php - 是否可以用 PHP 制作动画图形?

php - 路由中的 Laravel 5.5 模型绑定(bind)不起作用

php - 如何将多个 javascript 文件的请求组合成一个 http 请求?

javascript - 在页面之间导航时显示加载程序 - PWA

c++ - C负数组索引

php - 如何使用 PHP 检查数组中是否存在该值并将该值插入数据库

asp.net - 将多个模型发送到单个 View 实例

php - Symfony 2.8 注入(inject) Twig