【问题标题】:How to place vue variable inside a laravel bracket如何将 vue 变量放在 laravel 括号内
【发布时间】:2016-09-08 11:42:12
【问题描述】:

与 laravel 一起使用时,我在显示 vue 变量输出时遇到问题。下面是我的代码。

<input type="text" 
               class="form-control search-bar__input" 
               placeholder="Search Courses, Interests, Schools or Institutions" 
               autocomplete="on" 
               autofocus="on"
               v-model="query"
               v-on:keyup="search">
<ul class="list-group">
    <li class="list-group-item" v-for="course in courses">
        <a href="{{ route('courses.show', '{{ course.id }}') }}">@{{ course.title }}</a>
    </li>
</ul> 

在上面的代码中,我在 a 元素的路由中使用了@{{course.id}}。但是,它似乎不起作用。谁能帮我解决这个问题。

【问题讨论】:

    标签: laravel laravel-5 laravel-5.2 vue.js


    【解决方案1】:

    您在那里混淆了服务器端和客户端代码。您将 @{{course.id}} 作为参数传递给 PHP 函数,因此您可能会遇到语法错误。

    你应该使用 Laravel 来输出你的路由,然后在你的 HTML/Blade 中你可以使用 @{{ }} 语法输出一个 Vue 变量。

    <a href="{{ route('courses.show') }}?course_id=@{{ course.id }}">@{{ course.title }}</a>
    

    这将生成一个类似 http://yourdomain.com/courses/path/ 的 URL,并在其末尾粘贴 ?course_id=

    我的猜测是您正在尝试使用带有参数的路由,而不是查询字符串。在这种情况下,您应该尝试这样的事情(未测试):

    <a href="{{ route('courses.show', '') }}/@{{ course.id }}">@{{ course.title }}</a>
    

    请注意,我在route 的第二个参数周围加上了引号',并且我省略了@,因为我们希望直接输出{{ course.id }},而且我们使用的是PHP,而不是Blade。

    如果运气好的话,您的 URL 将生成如下:

    http://yourdomain.com/courses/path/{{ course.id }}
    

    【讨论】:

    • @Jonathan 谢谢你的回答。是的,我使用 course.id 作为参数。我试过你的答案,但它给了我错误(语法错误,意外'}')。
    • 您能否将更新后的代码复制并粘贴到您的问题中?
    • @Jonathan 请查看我更新的问题。我试过了,但给了我语法错误。
    • 看来这是 Blade 编译器的问题。似乎认为第二个参数内的}} 是刀片标签的结尾。请参阅我的更新答案(第二段代码)以获取替代解决方案。
    • @Jonathan Wow 工作正常。为什么需要在路由中包含 ''?
    猜你喜欢
    • 2021-11-06
    • 2019-06-10
    • 2018-04-19
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多