如何解决create.blade.php显示404 |未找到
社区!
我正在学习laravel框架,并陷入了资源控制器的概念
我借助artisan命令(即php artisan make:controller PostController --resource
)制作了一个资源控制器。代码如下: create.blade.php(即views / posts文件夹)
@extends('main')
@section('content')
<div class="row">
<div class="col-mid-8 col-md-offset-2" >
<h1>Create New Post</h1>
<hr>
<form action="posts/create" method="GET">
<div class="form-group">
<input type="text" class="form-control"
name="title" aria-describedby="emailHelp">
</div>
<div class="form-group">
<input type="text" class="form-control"
name="body" aria-describedby="emailHelp">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
@endsection
PostController.php
class PostController extends Controller
{
public function create()
{
return view('posts.create');
}
web.php(路由)
<?php
use Illuminate\Support\Facades\Route;
Route::resource('posts','PostController');
请指导我在做什么错
解决方法
Route::post('posts/create','PostController@create')->name('posts');
并更改您的.blde表单操作和方法
action="{{route('posts')}}" method="post"
还要更改您的控制器方法
public function create(Request $r){}
,
您应该遵循laravel官方网站上的设计指南。 当你写
Route::resource('posts','PostController');
它创建特定的路线here文档。
您要显示的是该路线
GET /posts/create create posts.create
因此,这意味着该路线正在寻求“创建”功能。您的代码看起来不错,但是“ 404”表示您的create方法找不到指定的刀片。请检查您放置它的位置,用于访问的URL是http:yourUrl / posts / create。
此外,表单数据通常由POST方法传递(良好的设计模式),我建议不要对路由名称进行硬编码,以帮助您更轻松地维护代码:
<form action="{{route("here route_name for post method")}}" method="POST">
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。