Laravel获取个人资料名称

时间:2015-08-05 12:51:46

标签: php laravel

我是laravel新手,我正在制作简单的CMS。所以我有一个简单的问题: CMS

点击头像时我不想 - 重定向到用户个人资料(http://example.com/profiles/nickname/id) 在DB中它保存: DB

正如您所看到的author_id,现在我需要从users表中获取作者姓名: users table

然后生成网址:http://example.com/profiles/Evaldas/2(Evaldas,因为author_id中的2topics 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

事先非常感谢:)

1 个答案:

答案 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

之类的内容