{{url('/ task')}}和{{url()/ task}}之间的区别?

时间:2016-02-10 07:14:13

标签: url-routing laravel-routing laravel-5.2

您好我在编写刀片模板时在之前的项目中使用Laravel 5我使用表单操作

<form action="{{ url() }}/task" method="POST" class="form-horizontal">

但在我最近的项目中,我使用相同的格式但代码却给出了错误

  

Htmlentities()期望参数1为给定的字符串对象。

如果我这样写

<form action="{{ url('/task') }}" method="POST" class="form-horizontal"> 

代码正常工作,任何人都可以帮助我理解差异以及如何解决它

1 个答案:

答案 0 :(得分:2)

$modal.open({ templateUrl: 'MyView.html', controller: 'MyViewController' }); 是辅助函数。它返回给定路径(字符串)或url()类(对象)实例的完全限定URL。您可以看到它的工作原理 - Illuminate\Routing\UrlGenerator

因此,当您在模板中运行src/Illuminate/Foundation/helpers.php时,只需要求模板引擎将{{ url() }}函数应用于对象。

在Laravel 5.2(5.1及更低版本)之前,htmlentities辅助函数始终返回一个字符串:

url()

现在,如果第一个参数为null,它们会处理

function url($path = null, $parameters = [], $secure = null)
{
    return app(UrlGenerator::class)->to($path, $parameters, $secure);
}