在Laravel 5.2中存储多个选择值可以通过使用多对多关系来实现。以下是一种常见的方法:
choices
的表格,用于存储所有可选项的数据。users
的表格,用于存储用户的数据。choice_user
的中间表格,用于存储用户选择的多个选项。Choice
的模型,与choices
表格对应。User
的模型,与users
表格对应。User
模型中,使用belongsToMany
方法定义与Choice
模型的多对多关系,并指定中间表格的名称。Choice
模型中,使用belongsToMany
方法定义与User
模型的多对多关系,并指定中间表格的名称。Choice
模型的create
方法创建新的选项。attach
方法将选项与用户进行关联。choices
方法获取用户选择的所有选项。detach
方法取消选项与用户的关联。下面是一个示例代码:
// Choice.php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Choice extends Model
{
protected $fillable = ['name'];
public function users()
{
return $this->belongsToMany(User::class, 'choice_user');
}
}
// User.php
namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
// ...
public function choices()
{
return $this->belongsToMany(Choice::class, 'choice_user');
}
}
// 在控制器中的使用示例
use App\User;
use App\Choice;
$user = User::find(1);
// 创建新的选项
$choice = Choice::create(['name' => '选项1']);
// 将选项与用户关联
$user->choices()->attach($choice);
// 获取用户的选项
$choices = $user->choices;
// 取消选项与用户的关联
$user->choices()->detach($choice);
这样,你就可以在Laravel 5.2中存储和管理多个选择值了。请注意,以上示例仅为演示多对多关系的基本用法,实际应用中可能需要根据具体需求进行适当调整。
领取专属 10元无门槛券
手把手带您无忧上云