Php 控制器中的重定向错误
当我删除任务时,我似乎无法修复我的问题,它将我重定向到仪表板我可以在控制器中看到它当前正在重定向到/仪表板页面,但是当我尝试修复此问题时,它只是出错了:/i我希望它获得与创建重定向相同的结果Php 控制器中的重定向错误,php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,当我删除任务时,我似乎无法修复我的问题,它将我重定向到仪表板我可以在控制器中看到它当前正在重定向到/仪表板页面,但是当我尝试修复此问题时,它只是出错了:/i我希望它获得与创建重定向相同的结果 public function createTaskPage(Request $request, $slug) { $project = Project::where('slug', $slug)->firstOrFail(); // Validate it has a body.
public function createTaskPage(Request $request, $slug) {
$project = Project::where('slug', $slug)->firstOrFail();
// Validate it has a body.
$validate = validator(
$request->toArray(), [
'task' => 'required',
]);
if ($validate->fails()) {
return response()->json([], 400);
}
$tasks = new Task;
$tasks->project_id = $project->id;
$tasks->body = $request->task;
$tasksCreate = Auth::user()->tasks()->save($tasks);
//return response()->json([], 201);
return redirect()->to('/project/' . $project->slug);
}
public function doDeleteTask($id) {
try {
$tasks = Task::where('user_id', Auth::user()->id)->findOrFail($id);
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $ex) {
return response()->json([], 404);
}
$tasks->delete();
//return response()->json([], 204);
return redirect()->to('/dashboard');
}
这是“删除”按钮所在的窗体
<div class="col-md-3">
<div class="panel panel-default shadow">
<div class="panel-body">
<div class="row text-center">
<h4><strong>{{ str_limit(strip_tags($project->name), 20) }}</strong></h4>
<h5>{{ $project->created_at }}</h5>
</div>
<div class="row text-center" style="margin:5px;">
{{ ($project->description) }}
</div>
<div class="row text-center">
<form action="{{ url('/project/'.$project->id) }}" method="POST">
{{ csrf_field() }}
{{ method_field('DELETE') }}
<button type="submit" class="btn btn-link btn-sm" onclick="return ConfirmDelete(this)" style="margin:5px;"><i class="fa fa-ban fa-3x" aria-hidden="true"></i></button>
<a href="{{ url('/project/' . $project->slug) }}" class="btn btn-link btn-sm"><i class="fa fa-arrow-circle-o-right fa-3x" aria-hidden="true"></i></a>
</form>
</div>
</div>
</div>
如果在任务中定义了项目关系,则可以执行以下操作:
public function doDeleteTask($id) {
try {
$tasks = Task::where('user_id', Auth::user()->id)->findOrFail($id);
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $ex) {
return response()->json([], 404);
}
$project = $tasks->project;
$tasks->delete();
return redirect()->to('/project/' . $project->slug);
}
您的路由文件看起来像什么?oute::delete('/task/{id}','TaskController@doDeleteTask'); // 删除任务我指的是路由文件。如果功能似乎正常,但存在重定向问题,则路由文件可能存在问题(使用其他路由)。如何“修复”?我的意思是它没有坏,它的行为方式是按照编码的方式进行的。问题是当你修改代码时,最好向我们展示产生错误的代码是什么样子的。@apokryfos我编辑了我的答案以展示更多的代码
public function doDeleteTask($id) {
try {
$tasks = Task::where('user_id', Auth::user()->id)->findOrFail($id);
} catch (\Illuminate\Database\Eloquent\ModelNotFoundException $ex) {
return response()->json([], 404);
}
$project = $tasks->project;
$tasks->delete();
return redirect()->to('/project/' . $project->slug);
}