这是this question的延续。我正在学习使用模型连接,但我无法让它们工作。
这是我的表结构:
这是我的控制器:
public function Tag($data=NULL)
{
$BlogData = Tag::with('blogs')->where('Name', $data)->get();
return $last_query = end($BlogData);
return View::make('tag')->with('BlogData', $BlogData);
}
这是我的标签模型:
<?php
class Tag extends Eloquent
{
protected $table = 'tags';
public static $rules = array(
'BlogTitle' => array('required'),
'BlogBody' => array('required')
);
protected $fillable = array('BlogTitle', 'BlogBody');
public function blogs(){
return $this->belongsToMany('Blog');
}
}
这是我的博客模型:
<?php
class Blog extends Eloquent
{
protected $table = 'blog';
public static $rules = array(
'BlogTitle' => array('required'),
'BlogBody' => array('required')
);
protected $fillable = array('BlogTitle', 'BlogBody');
public function tags(){
return $this->belongsToMany('Tag');
}
}
以下是我的观点:
@extends('layout.master')
@section('body')
<div class="jumbotron">
@foreach ($BlogData as $Blog)
Tag :{{$Blog->Name}}
{{$Blog->tags;}}
@endforeach
</div>
@stop
如何显示所有包含标签的博客?
答案 0 :(得分:0)
您可以按whereHas
的某种关系过滤模型:
$BlogData = Blog::with('tags')->whereHas('tags', function($q) use $data){
$q->where('Name', $data);
})->get();