通过检查字段是否包含值来过滤集合

时间:2019-09-14 10:58:23

标签: mysql laravel

我有color_id的集合,并且有一个带有name和colors_id字段的表。需要检查或连接值是否存在于字段中,如果-true,则返回名称。 因此最终结果应该是存在color_id的名称集合。

带有colors_id的表格的屏幕截图

screenshot of table with colors_id

具有color_id的表的屏幕截图

screenshot of table with color_id

1 个答案:

答案 0 :(得分:0)

这就是我要怎么做。首先,创建一个枢轴allprojects { repositories { jcenter() maven { url 'https://maven.google.com' } } }

在迁移的up方法中

php artisan make:migration create_color_user_table

在您的用户模型中

 $table->unsignedBigInteger('user_id');
 $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

 $table->unsignedBigInteger('color_id');
 $table->foreign('color_id')->references('id')->on('colors')->onDelete('cascade');

当您有一种颜色或一组颜色要保存给用户时

public function colors()
    {
        return $this->belongsToMany(Color::class, 'color_user');
    }

如果您想获得用户颜色

$user->colors()->sync([1, 2, 3]);

如果您希望用户使用特定的颜色

$user->colors;