【问题标题】:Difference between {{ url('/task') }} and {{ url ()/task}}?{{ url('/task') }} 和 {{ url ()/task}} 的区别?
【发布时间】:2016-05-20 10:29:15
【问题描述】:

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

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

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

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

如果我这样写

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

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

【问题讨论】:

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


【解决方案1】:

url() 是一个辅助函数。它返回给定路径(字符串)或Illuminate\Routing\UrlGenerator 类(对象)实例的完全限定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);
}

现在,他们处理第一个参数是否为空

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-12
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    相关资源
    最近更新 更多