将锚链接设置为Laravel中的地址会出错

时间:2016-12-16 06:29:28

标签: php laravel laravel-5 vue.js blade

在我的Laravel应用程序中,当我尝试将在网站上发布的人的用户名与他的个人资料页面链接时,使用以下代码:

<div class="media-body"><a href="@{{ post.user.profileUrl }}">@{{ post.user.name }}</a> 

它给出了错误:

  

抱歉,找不到您要查找的页面。

     

RouteCollection.php第161行中的1/1 NotFoundHttpException:

但是,当我尝试打印@{{ post.user.profileUrl }}时,它正在给出正确的地址,同样在json响应中,它正在给出正确的地址,并且到达地址也到达特定位置。

所以,我不认为这是post.user.profileUrl的一些问题,因为它似乎工作正常,使用它与href似乎有些问题,谷歌Chrome中的错误地址是:

http://localhost:8000/%7B%7B%20post.user.profileUrl%20%7D%7D

并且地址应该是

http://localhost:8000/users/2其中2表示用户的ID,我通过Vue.js传递给用户

4 个答案:

答案 0 :(得分:0)

问题是@{{ post.user.profileUrl }}没有解析。 %7B%7B%20post.user.profileUrl%20%7D%7D{{ post.user.profileUrl }}

的ASCII表示形式

检查代码是否在.blade.php文件中。如果是,您应该查看JS模板引擎,如果您正在使用任何。

https://laravel.com/docs/5.3/blade#blade-and-javascript-frameworks

  

Blade将删除@符号;但是,{{name}}表达式将保持不受Blade引擎的影响,允许它由JavaScript框架呈现

答案 1 :(得分:0)

我认为您的视图中有$post模型。当您在模型PostUser之间设置关系时,您可以通过以下方式链接到它们:

<a href="{{ url('/@'.$post->user->profileUrl) }}">@{{ $post->user->name }}</a>

这会将用户profileUrl变为有效链接。但是,你必须在模型中建立关系。

发布模型:

public function user() {
    return $this->hasMany('App\Users', 'id', 'user_id');
    //first parameter is the Model class
    //send is the id of the user table
    //thirth is the user_id in the post table
}

在用户模型中:

public function posts() {
    return $this->hasMany('App\Posts', 'user_id', 'id');
}

希望这有效!

答案 2 :(得分:0)

试试这个......这绝对适合你

@verbatim
  <div class="media-body">
    <a href="{{ post.user.profileUrl }}">
      {{ post.user.name }}
    </a>
  </div>
@endverbatim

答案 3 :(得分:0)

我遇到了问题,问题在于javascript库,我正在使用,称为vue.js,它曾用于允许在引号内使用,但在第2阶段,它们没有,所以有一个转变为此,

{{1}}

这很好。

感谢所有通过回答做出贡献的人......