可以获取到数字的值 忘记了应该怎么用字符串写入数据库aa 希望大家来拯救我
4条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
在 Laravel 中,如果你想要将用户选择的爱好(作为数字)写入数据库,你需要确保你在表单中提交的数据是可读的,并且在控制器中正确处理这些数据。首先,确认你的模型、迁移文件以及控制器都已经准备就绪。
这里是一个详细的步骤:
-
创建一个模型 (如果还没有) 在命令行运行
php artisan make:model Hobby -m
来创建一个名为Hobby
的模型,并为它生成对应的数据库迁移文件。 -
编辑数据库迁移文件 打开
database/migrations
目录下的相应迁移文件,例如2023_04_06_000000_create_hobbies_table.php
,然后添加一个字段来存储爱好(假设我们叫它interest_id
),类型为 INT 或者 tinyint(取决于你的需求)。Schema::create('hobbies', function (Blueprint $table) { $table->id(); $table->integer('interest_id'); // 其他字段... $table->timestamps(); });
-
更新模型 (
app/Hobby.php
) 更新模型类,添加对interest_id
字段的访问器和 mutator。class Hobby extends Model { protected $fillable = ['interest_id']; public function getInterestLabelAttribute() { // 这里可以根据 interest_id 从其他表或常量数组中获取对应的爱好名称 // 示例:$labels = [1 => '跑步', 2 => '篮球', 3 => '健身']; $labels = [ 1 => '跑步', 2 => '篮球', 3 => '健身' ]; return $labels[$this->interest_id] ?? ''; } }
-
编辑控制器 (
app/Http/Controllers/YourController.php
) 在处理表单提交的地方,获取选中的爱好并将其转换为整数数组。然后将这个数组与其它数据一起保存到数据库。use App\Models\Hobby; class YourController extends Controller { public function store(Request $request) { $selectedHobbies = $request->get('hobbit') ?? []; $interestIds = array_map(function ($hobbyId) { return (int)$hobbyId; }, $selectedHobbies); // 获取其他表单数据 $username = $request->input('username'); $psw = $request->input('psw'); $email = $request->input('email'); $age = $request->input('age'); // 创建新记录 $user = new User([ 'username' => $username, 'psw' => $psw, 'email' => $email, 'age' => $age ]); // 保存用户 $user->save(); // 将爱好关联到用户 foreach ($interestIds as $interestId) { $hobby = new Hobby(['interest_id' => $interestId]); $user->hobbies()->save($hobby); } // 返回成功消息或其他操作 } }
-
更新视图 (blade 文件) 确保你的 HTML 表单元素有正确的 name 属性,以便在控制器中能接收到它们的值。
<tr> <label>爱好</label><br> <input type="checkbox" value="1" name="hobbit[]">跑步 <input type="checkbox" value="2" name="hobbit[]">篮球 <input type="checkbox" value="3" name="hobbit[]">健身 </tr>
现在,当用户提交表单时,Laravel 会处理这些爱好值,并将它们与用户对象关联起来。在查看用户信息时,你可以通过
$user->hobbies
获得用户的爱好列表,同时也可以使用getInterestLabelAttribute
访问器来获取更友好的显示文本。解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 35114 SVAC视频验签的问题
- ¥15 impedancepy
- ¥15 在虚拟机环境下完成以下,要求截图!
- ¥15 求往届大挑得奖作品(ppt…)
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见