2014-04-28 40 views
0

我需要能够访问我表中某列的所有数据。我最初的做法是做这样的事情。我试图在我的数据库中访问的列被称为'标签'访问数据库中的列Eloquent Laravel4

//get all posts 
$post = Post::get(); 

//get all post tags 
$post_tags = $post['tags']; 

但是,这将返回null。我知道会有一个非常简单的方法来做到这一点,我只是没有看到它!

编辑

的原因,我这样做,这是我在某事什么时候发布,你可以添加3个标签,其涉及到的职位地方有一个标签系统。长远来看,我试图做的是在单击某个标签时,它会使用该标签过滤掉所有帖子。

其工作原理是,当点击一个标签,用户会被重定向到URL,像这样

//test-site.com/posts/tags/{tag} 

所以我能被使用标签然后查询结果的数据库。我已经设法混淆了我自己的任务,我认为这会很简单!

+1

你有没有为你的标签设置关系? –

回答

1

如果你的标签都存储在同一个表中,该问题可能是你得到一个完整的结果集:

Post::get(); 

当你应该得到的只有一行:

Post::first(); 

所以这一个可能做的伎俩在这种情况下:

$post = Post::first(); 

$post_tags = $post->tags; 

如果使用Post::get()Post::all(),你必须迭代通过结果集才能得到你的信息:

foreach(Post::all() as $post) 
{ 
    echo $post->tags; 
} 
+0

不太确定这是如何工作的,这并不意味着我需要在我的数据库中的标签表?他们目前存储在与邮件本身相同的表 – jackthedev

+0

哦,我明白了。编辑添加更多信息。 –

+0

是啊,我现在明白了在看看的关系,它可能将是最适合我将它们存储在那里自己的表后。感谢您的帮助,另一种方式也很完美! – jackthedev