如何将vue变量放在laravel支架内

时间:2016-09-08 11:42:12

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

与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}}。但它似乎无法正常工作。任何人都可以帮助我。

1 个答案:

答案 0 :(得分:6)

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

您应该使用Laravel输出路线,然后在HTML / Blade中使用@{{ }}语法输出Vue变量。

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

这将生成类似http://yourdomain.com/courses/path/的网址,并在其末尾添加?course_id=

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

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

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

运气好的话,您的网址将会生成如下:

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