【问题标题】:How to return value of array of data from database in laravel 4.2?如何在 laravel 4.2 中从数据库中返回数据数组的值?
【发布时间】:2015-12-05 21:44:57
【问题描述】:

我有两个表格内容,类别

1-Category 表是两个列名和cat_id

2-内容有列标题、名称、cat_id、id

3-假设内容有3个多重cat_id

4 现在我必须从类别表中的值中获取名称

内容及类别表见附图

第一张图片是目录

第二张是分类表

public function AllStories()
{
    $cats = DB::table('content')
        ->join('category', 'content.Genres', '=', 'category.Genres')

        ->get();

    $AllStories=Content::all();

    return View::make('AlLStories')->with('AllStories',$AllStories)->with('cats',$cats);
}

现在我必须从类别表中的值中获取名称

【问题讨论】:

  • 重新考虑您的架构,这是错误的。您必须使用外键连接表,而不是逗号分隔值。
  • 我们无法从逗号分隔的值中找到类别名称

标签: arrays laravel laravel-4 laravel-5 laravel-5.1


【解决方案1】:

你的表结构错误

如果您想为用户存储类别信息,您需要有一个数据透视表,您可以在其中针对每个内容 ID 获取类别 ID。

目前,您的内容表将类别作为字符串,因为它是逗号分隔的,而您的类别表的 id 为整数,这就是您无法加入它们的原因。

表结构

Author: id, author_name, ...

Category: id, category_title, Genre, ....

Content: id, title, ....

Content_Category: content_id, category_id

Author_Content: author_id, content_id

数据透视表的其他版本可能是(取决于您的要求)

Content_Category_Author: author_id, content_id, category_id

现在,如果您有这样的关系,您可以执行各种连接来获取任何需要的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-14
    • 2023-03-17
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多