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



嗨,我在编写刀片模板时在以前的项目中使用 Laravel 5,我将表单操作用作

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

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

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

如果我这样写

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

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

url()是一个

辅助函数。它返回给定路径(字符串(或类(对象(IlluminateRoutingUrlGenerator实例的完全限定 URL。你可以看到它是如何工作的 - src/Illuminate/Foundation/helpers.php

因此,当您在模板中运行{{ url() }}时,您只需要求模板引擎将htmlentities函数应用于对象即可。

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

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

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

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

最新更新