【问题标题】:in laravel form , url works but route not在 laravel 形式中,url 有效,但路由无效
【发布时间】:2021-06-03 04:41:53
【问题描述】:

我是 laravel 的初学者,想做 CRUD 类别。

当我想创建一个新类别并在表单操作中使用{{route('category.store')}} 时,我的表单不会在提交时进入控制器,它只是重新加载并停留在同一页面上。

但是当我使用{{url('category')}} 时它可以工作。

我更改按钮类型和搜索太多但我不知道我的错误在哪里。

我的web.php中有这条路线

Route::resource('/category', CategoryController::class);

这是我的 CategoryController

public function store(Request $request)
    {
        $validatedData = $this->validate($request, [
            'parent_id' => 'sometimes|nullable|numeric',
            'title'      => 'required|min:3|max:255|string',
            'description'=>'required|min:10|max:500|string',
            'status'=>'required'
      ]);

      Category::create($validatedData);

      return redirect()->route('category.index')->with('success' , 'record created successfully');
    }

和视图(admin.categories.category-new.blade.php):

@extends('admin.layouts.master')
@section('content')
    <style>
        .box {
            width: 500px;
            height: auto;
            border-radius: 10px;
            background-color: #e3e3e3;
            margin: 100px auto;
        }

        .in-box {
            padding: 15px;
        }

        .form-error {

            border: 2px solid #e74c3c;
        }



    </style>
    <div class="card-body">
        <form action="{{ url('category')}}" method="POST">
          @csrf


          <div class="form-group">
            <input type="text" name="title" class="form-control" placeholder="title" required>
          </div>

          <div class="form-group">
            <input type="text" name="description" class="form-control" placeholder="description" required>
          </div>


            <select class="form-control" name="status" id="">
                <option value="">status</option>
                <option value="1" @if( old('status') == '1' ) selected="selected" @endif>active</option>
                <option value="0" @if( old('status') == '0' ) selected="selected" @endif> inactive</option>
            </select>




          <div class="form-group">
            <button type="submit" class="btn btn-primary">Create</button>
          </div>
        </form>
      </div>


@endsection

谢谢你的帮助:)

已编辑:

我的路线清单:


+--------+-----------+--------------------------+------------------+-------------------------------------------------------+------------+
| Domain | Method    | URI                      | Name             | Action                                                | Middleware |
+--------+-----------+--------------------------+------------------+-------------------------------------------------------+------------+
|        | GET|HEAD  | /                        |                  | Closure                                               | web        |
|        | GET|HEAD  | api/user                 |                  | Closure                                               | api        |
|        |           |                          |                  |                                                       | auth:api   |
|        | GET|HEAD  | category                 | category.index   | App\Http\Controllers\Admin\CategoryController@index   | web        |
|        | POST      | category                 | category.store   | App\Http\Controllers\Admin\CategoryController@store   | web        |
|        | GET|HEAD  | category/create          | category.create  | App\Http\Controllers\Admin\CategoryController@create  | web        |
|        | GET|HEAD  | category/{category}      | category.show    | App\Http\Controllers\Admin\CategoryController@show    | web        |
|        | PUT|PATCH | category/{category}      | category.update  | App\Http\Controllers\Admin\CategoryController@update  | web        |
|        | DELETE    | category/{category}      | category.destroy | App\Http\Controllers\Admin\CategoryController@destroy | web        |
|        | GET|HEAD  | category/{category}/edit | category.edit    | App\Http\Controllers\Admin\CategoryController@edit    | web        |
|        | GET|HEAD  | dashboard                |                  | App\Http\Controllers\Admin\DashboardController@index  | web        |
+--------+-----------+--------------------------+------------------+-------------------------------------------------------+------------+

【问题讨论】:

  • 运行 php artisan route:list 并显示与类别路由相关的列表
  • @SachinKumar 我编辑了我的问题并将其提出
  • 我希望你试试这个
    让我们做一件事。删除路由资源中的正斜杠并运行 php artisan optimize: clear 命令并再次检查
  • 顺便说一句,您使用的是哪个 Laravel 版本?
  • 非常感谢 :) 我删除了斜线,它起作用了。 @SachinKumar

标签: php laravel forms routes


【解决方案1】:

第 1 步: 首先,您必须像这样在视图部分中使用 laravel 表单格式

{{ Form::open(array('url' => 'foo/bar')) }}
    //
{{ Form::close() }}

第 2 步: 将你的新提供者添加到 config/app.php 的 providers 数组中:

'providers' => [
    // ...
    Collective\Html\HtmlServiceProvider::class,
    // ...
  ],

第 3 步: 在 config/app.php 的 aliases 数组中添加两个类别名

'aliases' => [
    // ...
      'Form' => Collective\Html\FormFacade::class,
      'Html' => Collective\Html\HtmlFacade::class,
    // ...
  ],

最后一步: 从终端运行以下命令: 作曲家需要“laravelcollective/html”:“^5.2.0” 注意:不要忘记将 laravel 版本与collective/html 匹配 然后更新你的作曲家

【讨论】:

    猜你喜欢
    • 2018-09-21
    • 2021-08-05
    • 1970-01-01
    • 2016-01-06
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    相关资源
    最近更新 更多