【发布时间】:2020-05-23 19:23:27
【问题描述】:
我正在研究Laravel 6,刀片模板总是有问题。
这些模板不起作用:@csrf、@error ("name")$message@enderror、@method ("patch"),尽管像 @foreach、@forelse 和 @if 这样的结构可以正常工作。
相反,我分别使用{{csrf_field ()}}、@foreach ($ errors-> all () as error) {$ error} @endforeach。
如果@error("name") $message @enderror 抛出错误:未定义变量:消息,则@csrf 和@method ("patch") 仅以纯文本形式输出为HTML。现在@method(“补丁”)有问题。我在 Windows 7 上工作,打开服务器我根据文档编写所有内容,但我必须寻找另一种编写代码的方法。可能是什么问题?
这是@error ("name") {$ message} 的情况。这是控制器。
<?php
namespace App \ Http \ Controllers;
use App \ Http \ Controllers \ Controller;
use Illuminate \ Http \ Request;
use Illuminate \ Support \ Facades \ DB;
class ServiceController extends Controller
{
public function index () {
$ var = 'create';
return view ('services.index', ['data' => $ var,]);
}
public function store (Request $ request) {
$ data = $ this-> validate ($ request, [
'name' => 'required'
]);
$ var = request ('name');
DB :: table ('services') -> insert (['name' => $ var]);
return redirect () -> back ();
}
}
这里是 services/index.blade.php 中的模板。所有模板都正确命名。
@extends ('html')
@section ('title', 'create')
@section ('content')
<h1> Create service </h1>
<form action = '/ service' method = 'post'>
<input type = 'text' name = 'name'>
{{csrf_field ()}}
<button> Add service </button>
</form>
@error ('name') {{$ message}} @enderror
@endsection
【问题讨论】:
-
首先检查版本常量
vendor/laravel/framework/src/Illuminate/Foundation/Application.php。如果那个是正确的,那么检查vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php以使用它包括use Concerns/CompilesErrors(或类似的)。如果所有这些似乎都如您所料,请尝试删除vendor并再次运行composer install
标签: php laravel laravel-blade laravel-6