我是laravel新手,我正在制作简单的CMS。所以我有一个简单的问题:
点击头像时我不想 - 重定向到用户个人资料(http://example.com/profiles/nickname/id) 在DB中它保存:
正如您所看到的author_id,现在我需要从users
表中获取作者姓名:
然后生成网址:http://example.com/profiles/Evaldas/2(Evaldas,因为author_id
中的2
为topics table
我的路线档案:
Route::get('topic/{tname}/{tid}', 'viewTopic@showTopic');
我的viewTopic.php
控制器:
<?php
namespace App\Http\Controllers;
use DB;
use View;
class viewTopic extends Controller
{
public function showTopic($tname, $tid)
{
return View::make('posts', [
'topics' => DB::table('topics')
->where('id', $tid)
->where('seo_title', $tname)
->first(),
'posts' => DB::table('posts')
->where('topic_id', $tid)
->select()
->get()
]);
}
}
布局:
@extends('layouts.main')
@section('content')
<div class="media">
<div class="media-left">
<a href="HERE MUST BE HREF TO PROFILE">
<img class="media-object" src="http://localhost/uploads/avatars/2.jpg" style="width: 64px">
</a>
</div>
<div class="media-body" rel="#author{{ $topics->author_id }}">
<h4 class="media-heading">{{ $topics->title }}</h4>
@if(!empty($topics->text))
{{ $topics->text }}
@else
Message empty :(
@endif
</div>
@foreach($posts as $post)
<div class="media">
<div class="media-left">
<a href="HERE MUST BE HREF TO PROFILE">
<img class="media-object" src="http://localhost/uploads/avatars/1.png" style="width: 64px">
</a>
</div>
<div class="media-body" rel="#post{{ $post->pid }}">
{{ $post->text }}
</div>
</div>
@endforeach
</div>
@stop
事先非常感谢:)
答案 0 :(得分:1)
如果要使用查询生成器,可以使用join()方法:
DB::table('posts')
->where('topic_id', $tid)
->join('users', 'user.id', '=', 'posts.author_id')
->select()
->get()
这样,用户信息将可用:
$post->nickname
然后,您可以使用laravel帮助程序构建URL,例如,如果您有配置文件路径:
<a href="{{route('profile', ['nickname' => $post->nickname, 'id' => $post->author_id]);}}">
另一种方法是为表创建模型并定义它们之间的关系。
请参阅:http://laravel.com/docs/5.1/eloquent-relationships
使用此方法,您可以编写$post->author->nickname