如何将 $request 从表单存储到 laravel 中的数据透视表

新空间

我正在尝试将数据从表单存储到数据透视表asset_user。

模型用户:

public function assets()
{
    return $this->belongsToMany(Asset::class)->withPivot(['amount']);
}

模型资产

public function users()
{
    return $this->belongsToMany(User::class)->withPivot(['amount']);
}

迁移资产_用户:

public function up()
{
    Schema::create('asset_user', function (Blueprint $table) {
        $table->foreignId('asset_id')->unsigned()->index();
        $table->foreignId('user_id')->unsigned()->index();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->foreign('asset_id')->references('id')->on('assets');
        $table->primary(['user_id', 'asset_id']);
        $table->decimal('amount');
        $table->timestamps();
    });
}

我的 POST 表单:

<div id="form" class="form">
    <form action="{{ route('home.store') }}" method="POST" novalidate>
      @csrf
        <label for="asset_id">Add Asset</label>
        <select class="form-control" id="asset_id" name="asset_id">
        @foreach($assets as $asset)
          <option value="{{$asset->id}}">{{$asset->symbol}} {{$asset->name}}</option>
          @endforeach
        </select>
      </div>
          @error('asset_id')
            <div style="color:red;">{{ $message }}</div>
          @enderror
        </div>
        <div class="form-group mb-4">
          <label for="amount">Amount</label>
          <input type="number" class="form-control" id="amount" name="amount" value=''></input>
          @error('amount')
            <div style="color:red;">{{ $message }}</div>
          @enderror
        </div>
        <input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
        <button type="submit" class="btn btn-dark">speichern</button>
        </form>
</div>

控制器:

public function store(Request $request){

    $validAsset= $this->validate($request,[
        'amount' => 'required|numeric',
        'asset_id' => 'required',
        'user_id' => 'required'
    ]);
    // dd($validAsset);
    $user = User::findOrFail(1);
    $user->assets()->attach($validAsset, [
        'amount'=> $validAsset['amount'],
        'asset_id'=> $validAsset['asset_id'],
        'user_id' => $validAsset['user_id']
    ]);

通过上面的尝试,我得到了错误:

SQLSTATE [23000]:完整性约束违规:1062 键 'PRIMARY 的重复条目 '5-3'

insert into `asset_user` (`amount`, `asset_id`, `user_id`) values (7, 3, 5), (7, 3, 5), (7, 3, 5)

为什么它尝试将所有 3 个值存储到所有 3 列?谢谢!

kashef_php

您可以使用同步方法而不是像这样附加:

$user->assets()->sync($request->asset_id[], ['amount'=> $request->amount]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据插入到数据透视表中,数据透视错误 laravel 5.6

来自分类Dev

将数据存储到数据透视表 laravel 8

来自分类Dev

如何通过Laravel 6中的表单将数据存储到表中?

来自分类Dev

如何将表单数据发布到存储方法?

来自分类Dev

如何将Javascript输出存储到表单中

来自分类Dev

如何将值从数据透视表字段复制到实际表Laravel(将对图像进行更多说明)

来自分类Dev

在 Laravel 中,如何从数据透视表访问数据?

来自分类Dev

Laravel:如何从该数据透视表中获取数据?

来自分类Dev

如何将多个表单数据值存储到本地存储中的单个键

来自分类Dev

在laravel 4中存储与数据透视表的关系

来自分类Dev

如何将Laravel中的布尔值从表单传递到数据库?

来自分类Dev

如何从Laravel中的数据透视表中获取更多行

来自分类Dev

Laravel如何将数组存储到数据库中

来自分类Dev

Laravel如何将变量存储到数据库中并在每次单击时更新

来自分类Dev

如何在Laravel 5中将数据从表单存储到包含外键的检查表中?

来自分类Dev

如何将文件从内存存储到Laravel5中的存储中?

来自分类PHP

如何使用laravel删除数据透视表中的单行

来自分类Dev

如何在Laravel数据透视表中与表列进行比较

来自分类Dev

如何在Laravel中为数据透视表编写关系?

来自分类Dev

Laravel:如何从数据透视表中获取记录?

来自分类Dev

如何在Laravel中创建数据透视表

来自分类Dev

如何从Laravel 5.6中的数据透视表更新特定行?

来自分类Dev

如何在 Laravel eloquent 中查询数据透视表的计数

来自分类Dev

如何在laravel中更新数据透视表?

来自分类Dev

如何在 Laravel 中验证数据透视表?

来自分类Dev

如何将表单中的值存储到mySQL数据库中?

来自分类Dev

如何将数据框的值“透视”到列中

来自分类Dev

如何将表单数据存储到Codeigniter会话中?

来自分类Dev

Laravel4:如何将Datepicker传递到表单中?

Related 相关文章

  1. 1

    将数据插入到数据透视表中,数据透视错误 laravel 5.6

  2. 2

    将数据存储到数据透视表 laravel 8

  3. 3

    如何通过Laravel 6中的表单将数据存储到表中?

  4. 4

    如何将表单数据发布到存储方法?

  5. 5

    如何将Javascript输出存储到表单中

  6. 6

    如何将值从数据透视表字段复制到实际表Laravel(将对图像进行更多说明)

  7. 7

    在 Laravel 中,如何从数据透视表访问数据?

  8. 8

    Laravel:如何从该数据透视表中获取数据?

  9. 9

    如何将多个表单数据值存储到本地存储中的单个键

  10. 10

    在laravel 4中存储与数据透视表的关系

  11. 11

    如何将Laravel中的布尔值从表单传递到数据库?

  12. 12

    如何从Laravel中的数据透视表中获取更多行

  13. 13

    Laravel如何将数组存储到数据库中

  14. 14

    Laravel如何将变量存储到数据库中并在每次单击时更新

  15. 15

    如何在Laravel 5中将数据从表单存储到包含外键的检查表中?

  16. 16

    如何将文件从内存存储到Laravel5中的存储中?

  17. 17

    如何使用laravel删除数据透视表中的单行

  18. 18

    如何在Laravel数据透视表中与表列进行比较

  19. 19

    如何在Laravel中为数据透视表编写关系?

  20. 20

    Laravel:如何从数据透视表中获取记录?

  21. 21

    如何在Laravel中创建数据透视表

  22. 22

    如何从Laravel 5.6中的数据透视表更新特定行?

  23. 23

    如何在 Laravel eloquent 中查询数据透视表的计数

  24. 24

    如何在laravel中更新数据透视表?

  25. 25

    如何在 Laravel 中验证数据透视表?

  26. 26

    如何将表单中的值存储到mySQL数据库中?

  27. 27

    如何将数据框的值“透视”到列中

  28. 28

    如何将表单数据存储到Codeigniter会话中?

  29. 29

    Laravel4:如何将Datepicker传递到表单中?

热门标签

归档