javascript - 根据 ID 插入多个项目 - Laravel

标签 javascript php laravel

我有两个表productsshipments以及带有字段product_id和shipment_no的数据透视表product_shipment。在数据透视表中,可以有一个发货编号,例如。 #4562 包含 2 个或更多产品。这是我想要实现的目标。

现在这就是我的代码的工作原理。当我选择产品hammer时,我能够检索hammer的ID。当我选择另一个产品 screwdrivers 的 id 时,它会替换 hammer 的 id,而不是同时存储两者。

插入数据后,我希望在我的数据透视表中找到一些内容

产品表

 product_id   name
    1         hammer
    2         screwdriver

出货量表

shipment_no    courrier        
 4562          MaerskLine

产品发货 - 枢轴

   shipment_no     product_no
     4562             1
     4562             2

这是我选择产品复选框的位置

HTML

 <input onclick="return productSelected(this)" type="checkbox"
 id="{!! $product->id !!}" name="{!! $product->name !!}" /> 

当我选择复选框时如何选择和检索我的产品 ID

JS

  function productSelected(product)
{

    $(".panel").append(
    '<input type="text"  value='+product.id+'   " id="product_id"  name="product_id" />'

}

如何将数据保存到数据库中

Controller

$product_id = Input::get('product_id');
        $product_selected = Product::all()->where('id',$product_id)->first();

        $shipment_details = new Shipment(array(
            'shipment_no' => $request->get('shipment_no'),
            'courrier' => $request->get('courrier'),


        ));

        $product_id->shipments()->save($shipment_details);   

发货模式

public function products()
    {
        return $this->belongsToMany('App\Product')
        ->withTimestamps();
    }

产品型号

public function shipments()
    {
        return $this->belongsToMany('App\Shipment')
        ->withTimestamps();
    }

如何获取我选择的产品的所有 ID,并使其看起来像我的数据透视表中的内容?感谢您的帮助

最佳答案

首先更改输入名称,如下所示:

function productSelected(product)
{

    $(".panel").append(
    '<input type="text"  value='+product.id+'   " id="product'+product.id+'"  
     name="products[]" />'

}

您现在应该在 Controller 中获得具有所有选定 ID 的阵列产品。所以你可以这样做:

$shipment_details = new Shipment(array(
        'shipment_no' => $request->get('shipment_no'),
        'courrier' => $request->get('courrier'),
));
$shipment_details->save();
$shipment_details->products()->sync($request->get('products'));

当然,您的 Shipment 模型中应该与 Product 具有 manyToMany 关系。

关于javascript - 根据 ID 插入多个项目 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994146/

相关文章:

javascript - 用定长多维数组填充Javascript对象

php - 在 DOMPDF 中打印边距

php - 如何获取已存储在服务器上的图像的 URL

php - Laravel created_at、updated_at 和 Id 列 php

database - 在 Lumen 5.4 中调用 Config::set 来更改数据库? (使用 Eloquent )

javascript - 为 <div> 中用逗号分隔的文本应用不同的 css

javascript - 获取特定列中的值(数字)

javascript - 使用 pureJS 拖放,无后端

php - 如何获取与我的不匹配的mysql查询的id?

php - 使用 Laravel 5.1 将文件上传到 S3 失败