两个表连接数据传递到laravel中的视图

时间:2016-07-12 15:04:15

标签: php database laravel join

需要从视图中的状态表中获取数据。试图用别名,谷歌搜索超过3个小时,我迷路了。有什么想法吗?

控制器代码:

 $action= DB::table('actionplan')
    ->join('status','actionplan.status','=','status.id')
    ->select('status.name as testas','actionplan.*')
    ->where([['user_id','=',$name],['done','<>',1]])->get();

查看代码:

@foreach($teams as $item)
<th scope="row">1</th>
<td>{{$item->name}}</td>
<td>{{$item->start_date}}</td>
<td>{{$item->end_date}}</td>
<td>{{$item->comment}}</td>
<td>{{$item->status()->name}}</td>

1 个答案:

答案 0 :(得分:0)

您应该真正为数据库表实现模型。虽然这不是您要求的建议,但它将极大地简化您在这方面的疑问。

您的 ActionPlan.php 型号:

use Illuminate\Database\Eloquent;

class ActionPlan extends Model
{
    protected $table = 'actionplan';

    public function status()
    {
        return $this->hasOne(App\Status::class, 'id', 'status');
    }
}

您的 Status.php 型号:

use Illuminate\Database\Eloquent;

class Status extends Eloquent
{
    protected $table = 'status';
}

您的查询:

$actions = Action::whereHas('status')
    ->where('user_id', '=', $name)
    ->where('done', '<>', 1)
    ->get();

或者:

$actions = Action::whereHas('status')
    ->whereUserId($name)
    ->having('done', '<>', 1)
    ->get();