如何将数据从选择的 html 标签存储到数据库并显示它...Laravel

Posted

技术标签:

【中文标题】如何将数据从选择的 html 标签存储到数据库并显示它...Laravel【英文标题】:How to Store Data from select html tag to DB and display it...Laravel 【发布时间】:2021-06-20 22:08:34 【问题描述】:

Laravel

我有 3 张桌子

1- 用户 => id + 姓名 + 电子邮件 + 密码

2- 类别 => id + 名称

3- category_user => user_id + category_id

我希望用户选择他们最喜欢的类别,以便只显示该类别的文章。

这里是选择类别的页面:

<div class="form-group">
        <label for="body">Category</label>
        <select name="categories[]" id="" multiple>
            @foreach ($categories as $category)
            <option value="$category->id">$category->name</option>
            @endforeach
        </select>

如何将这些数据存储在 category_user 表中? (带验证)

另外,我怎样才能只显示属于所选类别的文章?

【问题讨论】:

您希望针对特定用户保存多个类别,因为此名称属性暗示 name="categories[]"。这很简单,遍历 $request->categories 并将其保存在用户面前。 查看文章你想使用 eloquent 还是 query builder? 没关系,重要的是解决问题哈桑马利克 【参考方案1】:

如果您在控制器中转储并删除您的请求数据,您会将类别视为一个数组。您可以通过 foreach 循环遍历类别并将其保存到 category_user 表。不要忘记使用当前用户 id 作为 user_id。

foreach ( $request->categories as $categoryId ) 
    CategoryUser::create( [ 'user_id' => auth()->user()->id, 'category_id' => $categoryId ] )

为了显示需要更多关于文章表的信息。一篇文章属于一个类别还是多个类别?

【讨论】:

我尝试了这个解决方案,但我遇到了一个问题(未定义类型'App \ Http \ Controllers \ CategoryUser)我应该用这个名称构建模型吗? (CategoryUser) 还是 (Category_User)?关于你的问题:文章属于很多类别? 是的,您可以创建一个 CategoryUser 模型,或者您可以执行数据库查询以插入该表。 好的,谢谢,关于只显示属于所选类别的文章 对于特定类别的文章,定义模型关系并使用 whereHas 对关系进行过滤。像这样Article::whereHas( 'categories', function ( $q ) use ( $catIds ) $q-&gt;whereIn('id', $catIds); )-&gt;get();

以上是关于如何将数据从选择的 html 标签存储到数据库并显示它...Laravel的主要内容,如果未能解决你的问题,请参考以下文章

如何将 html 标签从 sql server 数据库显示到 html 页面?

如何在没有 HTML 标签的情况下从数据库中获取数据?

c#如何将html标签写入指定的excel中

如何使用 GWT 将许多数据从数据存储区显示到网站

如何使用spring boot将数据从一个html表单传递到多个表

如何防止存储在 List 中的 Stateful Widget 被释放?