在我的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传递给用户
答案 0 :(得分:0)
问题是@{{ post.user.profileUrl }}
没有解析。 %7B%7B%20post.user.profileUrl%20%7D%7D
是{{ post.user.profileUrl }}
检查代码是否在.blade.php
文件中。如果是,您应该查看JS模板引擎,如果您正在使用任何。
https://laravel.com/docs/5.3/blade#blade-and-javascript-frameworks
Blade将删除@符号;但是,{{name}}表达式将保持不受Blade引擎的影响,允许它由JavaScript框架呈现
答案 1 :(得分:0)
我认为您的视图中有$post
模型。当您在模型Post
和User
之间设置关系时,您可以通过以下方式链接到它们:
<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}}
这很好。
感谢所有通过回答做出贡献的人......