har*_*nam 4 mysql laravel eloquent laravel-4
public function getIndex()
{
// Get all the blog posts
/*$posts = Post::with(array(
'author' => function($query)
{
$query->withTrashed();
},
))->orderBy('created_at', 'DESC')->paginate(10);*/
$posts =Post::with(array('search' => function($query)
{
$query->where('title', 'like', '%Lorem ipsum%')->withTrashed();
}))->orderBy('created_at', 'DESC')->paginate(10);
// Show the page
return View::make('frontend/blog/index', compact('posts'));
}
Run Code Online (Sandbox Code Playgroud)
这是我在Controller中的代码.我正在使用GitHub上提供的入门套件.
我为这个控制器创建了这个模型
public function search()
{
return $this->belongsTo('Post', 'user_id');
}
Run Code Online (Sandbox Code Playgroud)
问题是它没有取得标题包含"Lorem ipsum"的结果.它只打印表中的所有值.
如何实现此功能以仅获取包含我的标记/关键字的值.我这样做是为了在laravel网站上添加搜索选项
为什么不为此创建范围?你读过范围文档吗?这是一个例子,我将如何实现这一目标:
范围:
public function scopeTagged($query, $tag)
{
return $query->where('title', 'LIKE', '%' . $tag . '%');
}
Run Code Online (Sandbox Code Playgroud)
并修改您的行动:
public function getIndex()
{
$posts = Post::tagged($lorem_ipsum)->withTrashed()->orderBy('created_at', 'DESC')->paginate(10);
// Show the page
return View::make('frontend/blog/index', compact('posts'));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19142 次 |
| 最近记录: |