Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.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 如何防止删除和更新?_Php_Laravel - Fatal编程技术网

Php 如何防止删除和更新?

Php 如何防止删除和更新?,php,laravel,Php,Laravel,我有一个这样的多步骤的形式 我在educationals表格中添加了这个表格 当我点击+按钮时,我添加了其他信息 它成功地添加到数据库中。现在,当添加其他数据时 1的id已删除。。。其中是1的id 我的刀片 <form method="post" enctype="multipart/form-data" action="{{ route('update', auth()->id()) }}"> <sel

我有一个这样的多步骤的形式

我在
educationals
表格中添加了这个表格

当我点击+按钮时,我添加了其他信息

它成功地添加到数据库中。现在,当添加其他数据时

1
的id已删除。。。其中是
1
的id

我的刀片

<form method="post" enctype="multipart/form-data" action="{{ route('update', auth()->id()) }}">
<select name="educationals['+countStudy+'][grade_id]">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<input type="text" name="educationals['+countStudy+'][field]">
<input type="text" name="educationals['+countStudy+'][branch]">
<select name="educationals['+countStudy+'][institution_id]">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<input type="text" name="educationals['+countStudy+'][institution_education]">
<input type="text" name="educationals['+countStudy+'][gpa]">
<select name="educationals['+countStudy+'][nation_id]">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<select name="educationals['+countStudy+'][province_id]">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<input type="text" name="educationals['+countStudy+'][province_name]">
<select name="educationals['+countStudy+'][town_id]">
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>
<input type="text" name="educationals['+countStudy+'][town_name]">
<input type="text" name="educationals['+countStudy+'][entrance]">
<input type="text" name="educationals['+countStudy+'][graduate]">
<input type="checkbox" name="educationals['+countStudy+'][currently_studying]">
<button type="submit">Update</button>
</form>

我发疯了,我试了三天,但我还没有解决我的问题。

不确定我是否完全从中得到问题,但控件中的最后一行代码是执行
->delete()
我们实际上没有收到你的问题。在执行删除之前,你可以执行
dd($Educational->Pull('id')
?让我们看看id是否在这里?@MahmoudKhosravi我想id
1
不在您的
$educationals->pulk('id')
,因此它会按照代码
auth()->user()->educationals()->whereNotIn('id',$educationals->pulk('id')->delete()的预期被删除@RobBiermann-
$educationals = collect([]);

foreach ($request->educationals as $key => $educational) {
    $data = collect($educational);

    $model = Educational::updateOrCreate($data->only(['grade_id', 'institution_id'])->toArray() + [
            'user_id' => auth()->id()
        ], $data->except(['grade_id', 'institution_id', 'currently_studying'])->toArray() + [
            'currently_studying' => $request->has("educationals.{$key}.currently_studying") ? 1 : 0
        ]
    );
    $educationals->push($model);
}

auth()->user()->educationals()->whereNotIn('id', $educationals->pluck('id'))->delete();