这是我的表数据。
类别 [id] [category_name]
帖子 [id] [category_id] [post_name]
我想做的是:
我想列出echo category_name的帖子和联接类别表。
这是我的控制器
class Form_data_Controller extends Base_Controller {
function action_index() {
$posts = new Post();
$list_posts = $posts->list_posts();
$view['list_posts'] = $list_posts;
echo '<pre>';
print_r( $list_posts );
echo '</pre>';
$view['pagination'] = $list_posts->links();
// page title
$view['page_title'] = 'Test list data';
// create view and end.
return View::make( 'form-data.index_v', $view );
}// action_index
}
这是帖子模型
class Post extends Eloquent {
//public static $table = 'posts';
public function categories() {
return $this->belongs_to( 'Category' );
}// categories
function list_posts() {
$query = $this
->order_by( 'post_name', 'asc' )
->paginate( '10' );
return $query;
}// list_posts
}
这是类别模型
class Category extends Eloquent {
//public static $table = 'categories';
public function posts() {
return $this->has_many( 'Post' );
}// categories
}
我想列出帖子模型中的帖子 - &gt; list_posts()方法,因为我希望它在模型Not控制器中完成,但我不能加入类别表来获取 category_name 。
如何加入类别表以获取 category_name ?
答案 0 :(得分:0)
多个控制器方法可能需要以不同方式“列出帖子”,因此我不会将该逻辑放在模型中。这就是我认为你应该完成你的问题。否则,您可以将其设为静态方法并将其称为$ posts = Post :: list_posts();
class Form_data_Controller extends Base_Controller {
function action_index() {
$posts = Post::order_by( 'post_name', 'asc' )->paginate( '10' );
return View::make( 'form-data.index_v')
->with('title', 'Test list data')
->with('posts', $posts);
}
}
//应用/模型/ post.php中
class Post extends Eloquent {
//public static $table = 'posts';
public function category() {
return $this->belongs_to( 'Category', 'category_id' );
}
}
//应用/模型/ Category.php
class Category extends Eloquent {
//public static $table = 'categories';
public function posts() {
return $this->has_many( 'Post' );
}// categories
}
//应用/视图/格式数据/ index_v.blade.php
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{{ $posts->links() }}
@foreach($posts as $post)
{{ $post->category->name }}
@endforeach
</body>
</html>