【问题标题】:create.blade.php is showing 404| Not Foundcreate.blade.php 显示 404|未找到
【发布时间】:2020-12-07 21:49:44
【问题描述】:

社区!

我在学习 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');

请指导我做错了什么。

【问题讨论】:

  • 像这样在 web.php 中添加方法名称,Route::resource('posts', 'PostController@create');
  • 或者尝试在 PostController.php 中将方法名称从 create() 更改为 index()
  • 你可以在创建过程中粘贴你的网址吗?

标签: php laravel-7


【解决方案1】:

您应该遵循 laravel 官方网站上的设计指南。 当你写

Route::resource('posts', 'PostController');

它创建特定的路由here 文档。
在您的情况下,您希望显示该路线

GET /posts/create   create  posts.create

所以这意味着这条路线正在寻找`create`功能。您的代码看起来不错,但“404”意味着您的创建方法找不到指定的刀片。请检查你把它放在哪里,你用来访问的 url 是 `http:yourUrl/posts/create`。
此外,表单数据通常通过 POST 方法传递(良好的设计模式),我建议不要硬编码路线名称,这将有助于您更轻松地维护代码:
<form action="{{route("here route_name for post method")}}" method="POST">

【讨论】:

    【解决方案2】:
    Route::post('posts/create', 'PostController@create')->name('posts');
    

    并更改您的 .blde 表单操作和方法

    action="{{route('posts')}}"  method="post"
    

    同时改变你的控制器方法

    public function create(Request $r){}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 2021-04-12
      • 2014-10-31
      • 1970-01-01
      • 2013-03-29
      • 2021-02-24
      相关资源
      最近更新 更多