首页 > 解决方案 > 如何在laravel中获取插入的行ID?

问题描述

我们创建了一个 id = 56 的学校表。

然后我们创建了一个 id = 1 的活动表。

现在如何在活动表中保存 school_id = 56。

我有个问题。如何从学校表中获取插入 ID?

public function store(Request $request)
{
    if($request->ajax()) {
        $activity = new Activity();
        $activity->cluster_id = $request->cluster_id;
        $activity->group_id = $request->group_id;
        $activity->school_id = School::id;
        $activity->save();

        return response()->json(['data' => $request->all(), 'id' => $activity->school->id]);
    }
}

数据库

public function up()
{
    Schema::create('activities', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('school_id')->unsigned();
        $table->integer('cluster_id')->unsigned();
        $table->integer('group_id')->unsigned();
        $table->timestamps();

        $table->foreign('school_id')->references('id')->on('schools');
        $table->foreign('cluster_id')->references('id')->on('clusters');
        $table->foreign('group_id')->references('id')->on('groups');
    });
}

模型

class Activity extends Model
{
    public function school()
    {
        return $this->belongsTo(SchoolsList::class);
    }
}

标签: laravel-5.4

解决方案


假设您的 School Model 保存方法如下所示:

 $school = new School;
 $school->title = 'Baghoon High School';
 $school->location= 'Bangladesh';
 $school->save();

那么你想运行这段代码

if($request->ajax()) {
    $activity = new Activity();
    $activity->school_id = $school->id;
    $activity->save();
    return response()->json(['data' => $request->all(), 'id' => $school->id]);
}

推荐阅读