首页 > 解决方案 > 如何从 laravel 控制器发布自定义值

问题描述

我正在尝试从控制器添加一个值并将其与从视图中获得的其他输入一起发送到 mysql。我该怎么做?

我尝试使用 array_merge,尝试将它们放在同一个变量中并使用 Laravel 的创建发送它,但无济于事。

这是代码

价值

 $id = 0;
 $id++;

 $time = "2019-01-01 00:00:00";
 $date = new Carbon( $time );
 $d = $date->format('Y');

   $fmipa = 0;
   $fkh = 0;
   $lastNumber = 0;
   $fk = $request->get('fakultas');
   if($fk == 'FMIPA'){
     $fmipa++;
     $fk = 42;
     if($fmipa < 10){
        $fmipa="00". $fmipa;
        $lastNumber = $fmipa;
     }else if($fmipa < 100){
        $fmipa="0" . $fmipa;
        $lastNumber = $fmipa;
     }else{
        $fmipa = $fmipa;
        $lastNumber = $fmipa;
     }
   }else{
     $fkh++;
     $fk = 41;
     if($fkh < 10){
       $fkh="00". $fkh;
       $lastNumber = $fkh;
     }else if($fkh < 100){
       $fkh="0" . $fkh;
       $lastNumber = $fkh;
     }else{
       $fkh = $fkh;
       $lastNumber = $fkh;
     }
    }

$nim = $d . $fk . "101" . $lastNumber;

Store() 函数


    $validator = Validator::make($request->input(), array(
     'nama' => 'required',
     'alamat' => 'required',
     'fakultas' => 'required',
    ));

    if ($validator->fails()) {
      return response()->json([
        'error'    => true,
        'messages' => $validator->errors(),
      ], 422);
    }

   $mahasiswa = Dashboard::create($request->all() + ['nim' => $nim]);


   return response()->json([
      'error' => false,
      'mhs'  => $mahasiswa,
   ], 200);

我将它们分开以便于阅读,但如果您想知道值的代码是否在 store() 函数中。

我希望它将值发布到数据库中,但我从 XHR 的响应中得到的是

500内部服务器错误

SQLSTATE [HY000]:一般错误:1364 字段 'nim' 没有默认值

标签: laraveleloquent

解决方案


替换存储功能如下

$dashboard = new Dashboard();
$dashboard->nama = $request->nama;
$dashboard->alamat = $request->alamat;
$dashboard->fakultas = $request->fakultas;
$dashboard->nim = $nim;
$dashboard->save();

推荐阅读