我正在创建一个虚拟商店的网站,我正试图做一个产品注册页面。
产品表单中的一些字段不是必需的,所以我需要一种方法来让我的Controller只添加与接收到的输入匹配的列。
我试过用关联数组来做,其中["column-name"=>"column-input"]
,但是当我试着运行查询时,Laravel认为所有的数组行都是不同的插入查询,只有DB的第一列,就像这样:
SQL: insert into `produtos` (`nome`) values (Smartphone Samsung Galaxy A34 128GB), (Marca:Samsung Modelo:Galaxy), (1),[...]
字符串
理想的行为将是沿着以下路线:
SQL: insert into `produtos` (`nome`,`descricao`,`ativado`,[...]) values ("Smartphone Samsung Galaxy A34 128GB","Marca:Samsung Modelo:Galaxy", 1,[...])
型
下面是控制器代码:
public function insert($post){
$campos = Array(); // fields array
foreach($post as $key=>$value){
array_push($campos,[$key=>$value]);
}
$query = DB::table('produtos')->insert($campos);
return $campos['url'];
}
型
我有什么办法可以做到吗?
2条答案
按热度按时间wfveoks01#
Laravel的Eloquent ORM中的create方法是一种创建新模型示例并将其持久化到数据库的便捷方法
字符串
lvjbypge2#
要在验证输入后将数据插入到
produtos
表中,您可以将Laravel验证与DB::table insert方法结合使用。字符串
验证函数如下所示。用laravel提供的必要验证更新字段。要了解更多关于验证的信息,请访问laravel文档https://laravel.com/docs/10.x/validation#working-with-validated-input
型