【问题标题】:Laravel Blade template Form::open() to HtmlLaravel Blade 模板 Form::open() 到 Html
【发布时间】:2019-02-28 00:34:56
【问题描述】:

我正在学习有关 Laravel 的教程。

但是,我想将刀片模板Form::open() 转换为 html/php 形式,以便于阅读和理解。

这是 Blade 模板:

   {{ Form::open(['action'=> ['StudentController@destroy', $student->id], 'method'=>'POST']) }}
            {{ method_field('DELETE') }}
            {{ Form::submit('Delete',['class'=>'btn btn-danger']) }}
   {{ Form::close() }}

我需要将刀片代码转换为 html/php 我试了很多次,就是这样。但失败

    <form action="url('StudentController@destroy', $student->id)" method="POST">
        <?php method_field('Delete'); ?>
        <button class="btn btn-danger" type="submit">Delete</button>
    </form>

有人知道正确的 html/php 格式吗?

[编辑] 路线:列表

【问题讨论】:

  • 我使用的是 5.5 版
  • 你能告诉我你的路线吗
  • routes/web/ 就像这样 "Route::resource('student', 'StudentController');
  • &lt;form action="{{ url('StudentController@destroy', $student-&gt;id) }}" method="POST"&gt;,对于初学者来说。
  • {{ url('/students', ['id' =&gt; $student-&gt;id])}} 并在表格内添加&lt;input type='_method' value='DELETE' /&gt; and &lt;input type="hidden" value="{{csrf_token()}}"&gt;

标签: php html laravel laravel-blade


【解决方案1】:

要调用控制器操作,您需要简写为url()-&gt;action(...)(或action())。

<form action="{{url()->action('StudentController@destroy', ['id'=>$student->id])}}" method="POST">
    @csrf
    {{ method_field('DELETE'); }}
    <button class="btn btn-danger" type="submit">Delete</button>
</form>

这在the manual中也有描述

【讨论】:

  • 感谢一开始说“过期页面”时出错,但是当我添加“@csrf”时它起作用了,我也将“{{ method_field() }}”更改为 使其全部为 html
【解决方案2】:

在表单上的“操作”中,您需要将任何辅助函数括在括号中,以便 Blade 知道如何处理它,否则,它只是文本。

另外请注意,我删除了 'method_field' 并将其替换为隐藏字段,因为这本质上是 method_field 助手创建的。

<form action="{{route('StudentController@destroy', ['id' => $student->id])}}" method="POST">
        <input type='hidden' value='DELETE'>
        <button class="btn btn-danger" type="submit">Delete</button>
</form>

如果使用 route 助手不起作用,您可以对表单标签的“动作”参数使用更简单的方法:

<form action="/student/destroy/{{$student->id}}" method="POST">

【讨论】:

  • 它把我送到了这个网址“laravelone.me/StudentController@destroy/7”,
  • @Van,我已经更新了代码以使用 route 助手,试一试,让我知道你会发生什么。
  • 它说“路线 [StudentController@destroy] 未定义。
  • 如上所述,然后附上您的 routes.php 文件的结构/代码,以便我们可以看到我们正在处理的内容。
  • @Van put php artisan route:list 并将其附加到您上面的代码中。
【解决方案3】:

你应该使用这个代码

<form action="{{ url('StudentController@destroy', $student->id) }}" method="POST">
    <input type='_method' value='DELETE' />
    <button class="btn btn-danger" type="submit">Delete</button>
</form>

【讨论】:

  • 我更新了代码,如果有任何问题请尝试告诉我
  • "laravelone.me/StudentController@destroy/2" 它把我发到这里,在教程中它被发送到 "laravelone.me/Students/7"
  • 运行 php artisan route:list 并首先检查您的路线名称并与我分享
  • 这个? "删除 | students/{student} | students.destroy | App\Http\Controllers\StudentController@destroy | web"
【解决方案4】:

试试这个方法

使用{{}} 并使用route

 <form action="{{route('StudentController@destroy', ['id'=>$student->id])}}" method="POST">
    <?php method_field('Delete'); ?>
    <button class="btn btn-danger" type="submit">Delete</button>
</form>

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 2015-09-12
    • 2016-12-18
    • 2014-11-19
    • 2017-09-10
    • 1970-01-01
    • 2013-07-21
    • 2016-04-14
    相关资源
    最近更新 更多