提问者:小点点

设置锚点链接到Laravel中的地址,给出错误


在我的Laravel应用程序中,当我试图将在网站上发布的人的用户名与他的个人资料页面联系起来时,代码是:

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

它正在给出错误:

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

1/1在RouteCollection中找不到HttpException。php第161行:

但是,当我试图打印@{{post.user.profileUrl}}时,它提供了正确的地址,也在json响应中,它提供了正确的地址,并且到达该地址也到达了特定的位置。

所以,我不认为这是一些问题与邮政。使用者profileUrl,因为它似乎工作正常,与href一起使用似乎有问题,Google Chrome中的错误地址是:

http://localhost:8000/{{post.user.profileUrl}

地址应该是

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


共3个答案

匿名用户

问题是@{{post.user.profileUrl}}没有解析。{{post.user.profileUrl}}{{post.user.profileUrl}}的ASCII表示形式

检查代码是否在中。刀身php文件。如果是的话,如果您正在使用JS模板引擎,那么您应该查看它。

https://laravel.com/docs/5.3/blade#blade-和javascript框架

@符号将被刀片移除;但是,{{name}}表达式将不会被刀片引擎触及,从而允许它由JavaScript框架呈现

匿名用户

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

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

这会将用户档案URL转换为有效链接。但因此,你必须在模型中建立关系。

后模型:

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');
}

希望这行得通!

匿名用户

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

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