Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数据库中保存动态选择值-Laravel_Php_Laravel_Vue.js_Eloquent_Vuejs2 - Fatal编程技术网

Php 在数据库中保存动态选择值-Laravel

Php 在数据库中保存动态选择值-Laravel,php,laravel,vue.js,eloquent,vuejs2,Php,Laravel,Vue.js,Eloquent,Vuejs2,我正在以动态呈现的形式处理多个选择框 在下面的场景中,我将选择映射到父标题 示例结果是{“1”:[2],“2”:[1,3]} 变体名称 变异值 大小 中等 颜色 白色 蓝色 黑色 您需要为动态选择指定一些名称。 例如,如果您有一个可以执行的属性列表[大小、颜色] 在服务器端,您将收到一个数组param attr[] $attr=request()->attr 看起来应该是 $attr['size']=>[您选择的尺码] $attr['color']=>您选择的颜色 你可以去看表格 希

我正在以动态呈现的形式处理多个选择框

在下面的场景中,我将选择映射到父标题

示例结果是
{“1”:[2],“2”:[1,3]}


变体名称
变异值
大小
中等
颜色
白色
蓝色
黑色

您需要为动态选择指定一些名称。 例如,如果您有一个可以执行的属性列表[大小、颜色]

在服务器端,您将收到一个数组param attr[]

$attr=request()->attr

看起来应该是 $attr['size']=>[您选择的尺码] $attr['color']=>您选择的颜色

你可以去看表格

希望有帮助,请告诉我。

试试这个替代品

确保在html中将name属性设置为如下数组

<select multiple="multiple" name="sizes[]" id="sizes">

类似地,对于其他输入,如多选颜色输入,您可以在PHP中使用上述步骤定义
数组

一种方法是通过显式设置其值来定义它,如:

<?php
  $my_array_1 = array("first" => 0, "second" => 1) // or;
  $my_array_2 = array(0, 1, 2);
?>
我认为您的问题在于需要解析在
$request['itemsArray']
中收到的
字符串

  • 因此,首先:
  • 然后需要展平此关联数组:
  • json_decode
    具有可选参数:)

    当然,在使用它之前,您应该检查
    $request
    ——身份验证和验证非常重要


    很抱歉,如果语法不正确-我已经有一年多没有使用PHP了,我已经把示例背下来了(没有检查)。但这个想法肯定是正确的:

  • 从请求中获取数据(验证数据!这不是流程所必需的,而是生产环境所必需的!)
  • 将其从字符串格式转换为PHP数组
  • 在最后一个数组中读取它(最终需要时)
  • 将最终格式放入数据库中

  • 您是如何提交表单的,即您是使用ajax还是仅使用标准表单提交?感谢您的快速回复。我正在使用Vue填充对象。在传递给laravel控制器时,我将上述对象存储到itemsArray。这是小提琴谢谢你的回复。这是我如何获取数据的问题。jsfiddle.net/eurodgj7。如有任何改进,将不胜感激
    <?php
      $my_array_1 = array("first" => 0, "second" => 1) // or;
      $my_array_2 = array(0, 1, 2);
    ?>
    
    <?php
      $my_array_3 = array(0, "one", 2)
    ?>
    
    <?php
      $items_arrays = array($request['itemsArray'], true);
    ?>
    
    array:2 [
      0 => "{"1":[2],"2":[1,3]}" // this is the string from $request['itemsArray']
      1 => true // this is the second element you added
    ]
    
    public function itemsStore(Request $request)
      {
        $json = json_decode($request['itemsArray']);
        // $json is now an associative array in PHP
        // something like: array(1 => array(2), 2 => array(1, 3))
        
        // $items_arrays = array($request['itemsArray'], true);
        // dd(items_arrays);
      }
    
    public function itemsStore(Request $request)
      {
        $json = json_decode($request['itemsArray']);
        // $json is now an associative array in PHP
        // something like: array(1 => array(2), 2 => array(1, 3))
        $items_arrays = [];
        foreach(json as $key1 => $val1) {
          foreach($val1 as $key2 => $val2) {
            $items_array[] = array($key1 => $val2);
          }
        }
        // $items_arrays = array($request['itemsArray'], true);
        dd(items_arrays);
      }