【发布时间】:2020-12-18 10:53:48
【问题描述】:
我正在使用 laravel 6。我创建了一个名为 'student' 的表,其中 'id' 列的值增量应该发生但没有发生。
这是我的迁移文件:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateStudentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('email');
$table->bigInteger('phone');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('students');
}
}
在我的学生表中:
我的 StudentController 文件:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Student;
class StudentController extends Controller
{
public function student()
{
return view('student.create');
}
public function index()
{
$student = Student::all();
return view('student.index', compact('student'));
}
public function store(Request $request)
{
$validatedData = $request->validate([
'name' => 'required|max:50|min:5',
'phone' => 'required|unique:students|max:12min:9',
'email' => 'required|unique:students',
]);
$student = new Student;
$student->name = $request->name;
$student->email = $request->email;
$student->phone = $request->phone;
$student->save();
$notification = array(
'message' => 'Data Insert Done!',
'alert-type' => 'success'
);
return Redirect()->route('all.category')->with($notification);
// DB::table('student')->insert($data)
// return response()->json($student);
}
public function ViewStudent()
{
}
}
模型文件:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
protected $fillable = [
'id','name', 'email', 'phone',
];
}
【问题讨论】:
-
你似乎在
id中插入了一个空值,如果你正在使用$students->id = $someVar之类的实现,请将其删除 -
@Ainz-sama 先生,在我的实现中,我不使用 like
$students->id = $someVar这个表达式。 -
通过
SHOW CREATE TABLE students;检查你的表结构是id列有AUTO_INCREMENT -
显示你的控制器
-
只需从可填充中取出
‘id‘,它就会按预期工作。
标签: php laravel eloquent phpmyadmin laravel-6