【发布时间】:2019-11-12 03:55:54
【问题描述】:
我正在发出表单删除请求,每次我尝试删除一些内容时都会收到错误消息“调用成员函数在 null 上删除”。我很长时间没有使用 Laravel,我已经忘记了它是如何工作的,现在我正在从头开始学习,遵循 Laracast 的教程。我比较了代码,一切都很好,但我总是遇到一些错误,我找不到问题......
web.php
Route::resource('projects', 'ProjectsController');
项目控制器
public function destroy($id)
{
$project = Project::find($id);
$project->delete();
return redirect('/projects');
}
edit.blade.php
@extends('layout')
@section('content')
<h1>Edit Project</h1>
<form method="POST" action="{{ url('/projects/$project->id') }}" >
{{ method_field('PATCH') }}
{{ csrf_field() }}
<div class="field">
<label class="label" for="title">Title</label>
<div class="control">
<input type="text" class="input" name="title" placeholder="Title" value="{{ $project->title }}">
</div>
</div>
<div class="field">
<label class="label" for="description">Description</label>
<div class="control">
<textarea name="description" class="textarea">{{ $project->description }}</textarea>
</div>
</div>
<div class="field">
<div class="control">
<button type="submit" class="button is-link">Update Project</button>
</div>
</div>
</form>
<form method="POST" action="{{ url('/projects/$project->id') }}">
{{ method_field('DELETE') }}
{{ csrf_field() }}
<div class="field">
<div class="control">
<button type="submit" class="button">Delete Project</button>
</div>
</div>
</form>
@endsection()
【问题讨论】:
-
检查您发布到的 URL。
{{ url('/projects/$project->id') }}可能无法创建正确的 URL,请尝试使用{{ url('/projects/'.$project->id) }}(正确附加 ID) -
哇...谢谢兄弟!!这真的帮了我很多...我花了几个小时试图找出问题所在
-
没问题!下面的答案扩展了这个概念,因此请考虑支持并接受它。并且不要忘记
dd()函数;如果您已完成dd($id),则在致电::find($id)之前;您将能够调试$id不是您所期望的。