2301_76826086 2024-05-24 09:38 采纳率: 70%
浏览 3

怎么把数字的值写入数据库

img

img


可以获取到数字的值 忘记了应该怎么用字符串写入数据库aa 希望大家来拯救我

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-24 09:38
    关注

    引自免费微信小程序:皆我百晓生

    在 Laravel 中,如果你想要将用户选择的爱好(作为数字)写入数据库,你需要确保你在表单中提交的数据是可读的,并且在控制器中正确处理这些数据。首先,确认你的模型、迁移文件以及控制器都已经准备就绪。

    这里是一个详细的步骤:

    1. 创建一个模型 (如果还没有) 在命令行运行 php artisan make:model Hobby -m 来创建一个名为 Hobby 的模型,并为它生成对应的数据库迁移文件。

    2. 编辑数据库迁移文件 打开 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();
      });
      
    3. 更新模型 (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] ?? '';
          }
      }
      
    4. 编辑控制器 (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);
              }
      
              // 返回成功消息或其他操作
          }
      }
      
    5. 更新视图 (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 访问器来获取更友好的显示文本。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月24日

悬赏问题

  • ¥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局部变量对蓝图不可见