【问题标题】:RESOLVED: Laravel - Can't make "submit form" route to show up已解决:Laravel - 无法显示“提交表单”路线
【发布时间】:2020-04-15 17:37:41
【问题描述】:

已解决!

我只需要访问“links.test/submit”而不是简单的“links.test”,因为“submit.blade.php”是一个新页面。

我还了解到本教程使用的是旧版本的 Laravel,这意味着没有创建“resources/views/layouts/app.blade.php”,因为

php artisan make:auth

命令不起作用。正如 Gustavo Alves 所指出的,对于 Laravel 7,我需要改用这两个命令:

composer require laravel/ui
php artisan ui vue --auth




原始问题:

我正在学习 Laravel 初学者教程 - https://laravel-news.com/your-first-laravel-application。我来到“显示链接提交表单”部分并将提供的代码 sn-p 粘贴到 routes/web.php 文件中,然后使用提供的在 resources/views/submit.blade.php 创建 submit.blade.php 模板代码 sn-p,按照说明。

但是,提交表单没有显示在我的“links.test”中。

web.php:

?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    $links = \App\Link::all();

    return view('welcome', ['links' => $links]);
});

Route::get('/submit', function () {
    return view('submit');
});

提交.blade.php:

@extends('layouts.app')
@section('content')
    <div class="container">
        <div>
            <h1>Submit a Link </h1>
            <form action="/submit" method="post" >
                @if ($errors->any())
                    <div class="alert alert-danger" role="alert">
                        Plese fix the following errors
                    </div>
                @endif
{!!csrf_field()!!}
<div class="form-group{{ $errors->has('title') ? 'has-error' : ''}}">
                    <label for="title">Title</label>
                    <input type="text" class="form-control" id="title" name="title" placeholder="Title" value="{{ old('title') }}">
                    @if($errors->has('title'))
                        <div class="alert alert-danger">
                            {{ $errors->first('title') }}
                        </div>
                    @endif
                </div>
<div class="form-group{{ $errors->has('url') ? ' has-error' : '' }}">
                    <label for="url">Url</label>
                    <input type="text" class="form-control" id="url" name="url" placeholder="URL" value="{{ old('url') }}">
                    @if($errors->has('url'))
                        <span>
                            <div class="alert alert-danger">
                                {{ $errors->first('url') }}
                            </div>
                        </span>
                    @endif
                </div>
<div class="form-group{{ $errors->has('description') ? ' has-error' : '' }}">
                    <label for="description">Description</label>
                    <textarea class="form-control" id="description" name="description" placeholder="description">{{ old('description') }}</textarea>
                    @if($errors->has('description'))
                        <div class="alert alert-danger">
                        {{ $errors->first('description') }}
                        </div>
                    @endif
                </div>
<button type="submit" class="btn btn-primary">Submit</button>
            </form>
        </div>
    </div>
@endsection

【问题讨论】:

  • 你用什么做服务器环境?
  • 说实话我不知道。我是 BE 的初学者,所以我什至不知道如何检查。我只知道我在使用 Laravel 的 Valet(就像我在 Mac 上一样)。
  • 看看这个网站:laravel.com/docs/7.x/valet
  • 按照教程进行操作时,php artisan make:auth 有效吗?我不认为,因为这个命令在 Laravel 6 上被删除了。如果是这种情况,请看这里(medium.com/@panjeh/…)如何在最近的版本中完成这个。
  • @Gustavo Alves 你是对的。我开始了一个新项目,php artisan make:auth 没有工作,因为我有 Laravel 7。我之前尝试过时一定错过了错误消息。这就是为什么我缺少像esources\views\layouts\app.blade.php 这样的文件。但是,我使用了适用于我的 Laravel 版本的新命令(安装了 layouts/app.blade.php),但我仍然无法让 submit.blade.php 显示在 nameofmyproject.test 中。

标签: laravel


【解决方案1】:

所以,我可以收集到你的评论是

您需要创建resources\views\layouts\app.blade.php,您将在其中拥有类似的内容

<!DOCTYPE html>
<html lang="en">
<head>
<title>Your App</title>

@section('head')
<!-- Styles -->
<link href="{{ mix('css/app.css') }}" rel="stylesheet">

@show()

</head>
<body>

@yield('content')

@section('scripts')
<script src="{{ mix('/js/app.js') }}"></script>

@show

@endsection

</body>
</html>

一旦你得到这个,你应该能够扩展,这应该也可以工作。

【讨论】:

  • 我创建了一个新项目,其中包含 resources\views\layouts\app.blade.php(使用 @yield('content'))并追溯了这些步骤,但仍然......什么都没有。我可以随意更改“welcome.blade.php”,但“submit.blade.php”拒绝路由。我开始认为本教程可能存在问题 - 它可能不适用于我拥有的最新 Laravel 版本。
  • 如果您不介意分享,我需要先检查您的代码,然后再发表任何意见。分享我的回购链接。如果你愿意,我可以看看它
  • @usrNotFound,非常感谢您提供查看代码。通过浏览 Youtube 上的 Laravel 教程,我才意识到问题出在哪里。事实证明,作为一个完整的初学者,我没有意识到我需要将“提交”作为新页面打开,这就是 Route::get('/submit', function () { return view('submit'); }); 的意思。现在我更聪明了!感谢您提供帮助!
猜你喜欢
  • 2015-11-30
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 2014-09-23
相关资源
最近更新 更多