编辑功能无法以CRUD形式使用(Laravel)

时间:2019-09-13 11:00:11

标签: laravel

我创建了一个名为“ Groups”的CRUD表单。创建和删除功能可以使用,但是“编辑”会引发错误:

  

“未定义变量:组(视图:   C:\ wamp64 \ www \ sites \ jointpromote2 \ resources \ views \ groups \ edit.blade.php

错误指向以下代码行:

http/controllers/GroupController.php

我已经尝试了好几种方法,但没有任何解决方法。

这是我的 { $event = Group::find($id); return view('groups.edit', compact('group')); }

database/migrations/create_groups_table.php

这是我的 public function down() { Schema::dropIfExists('groups'); }

@section('main')
<div class="row">
    <div class="col-sm-8 offset-sm-2">
        <h1 class="display-3">Update a Group</h1>

        @if ($errors->any())
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
        <br />
        @endif

        <form method="post" action="{{ route('groups.update', '$group->id') }}">
            @method('PATCH')
            @csrf
            <div class="form-group">
                <label for="group_name">Group Name:</label>
                <input type="text" class="form-control" name="group_name" value="{{ $group->group_name }}" />
            </div>

            <div class="form-group">
                <label for="group_description">Group Description:</label>
                <input type="text" class="form-control" name="group_description" value="{{ $group->group_description }}" />
            </div>
            <button type="submit" class="btn btn-primary">Update</button>
        </form>
    </div>
</div>
@endsection

这是edit.blade.php

value

4 个答案:

答案 0 :(得分:0)

您以错误的方式使用“压缩”方法。 https://www.php.net/manual/en/function.compact.php

尝试

{
  $event = Group::find($id);
  return view('groups.edit', compact($event));
}

答案 1 :(得分:0)

您将错误的变量从GroupController传递到edit.blade.php视图。将您的GroupController更改为此:

    {
        $group= Group::find($id);
        return view('groups.edit', compact('group'));
    }

所有功能现在都应该正常工作。

答案 2 :(得分:0)

您的变量名称为event,但是您正在压缩group并在Blade中使用group变量。在控制器中更改变量名称,一切都会好起来。

public function edit($id) {
    $group = Group::find($id);
    return view('groups.edit', compact('group'));
}

答案 3 :(得分:0)

您写的动作错误。尝试复制并粘贴以下代码

<form method="post" action="{{ route('groups.update', 
$group->id) }}">

您必须删除“。”来自$ group-> id