如何在请求数组中插入静态字段(Laravel 5.7)

8 浏览
0 Comments

如何在请求数组中插入静态字段(Laravel 5.7)

我在店铺功能的某个小特性上遇到了问题,似乎在互联网上没有找到适合我的合适答案。\n我想在数组请求中添加静态数据,这样当发送数据时,枢轴表中的字段将自动填充为某个整数。\n我有以下表格:\n

Schema::create('mounter_evaluations', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('project_id')->index()->unsigned()->nullable();
    $table->text('mentions')->nullable();
    $table->softDeletes();
    $table->timestamps();
});  
Schema::create('mounter_procedures', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('mounter_norm_id')->index()->unsigned()->nullable();
    $table->string('detail');
    $table->softDeletes();
    $table->timestamps();
});
Schema::create('mounter_procedures_checks', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('mounter_evaluation_id')->unsinged()->nullable()->index();
    $table->integer('mounter_procedure_id')->unsinged()->nullable()->index();
    $table->integer('checked')->unsinged()->nullable();
    $table->timestamps();
});

\n以下是我的模型:\n

public function mounterevaluation() {
    return $this->belongsToMany(
        'App\MounterEvaluation',
        'mounter_procedures_checks',
        'mounter_evaluation_id',
        'mounter_procedure_id'
    )->withPivot(['checked']);
}
public function mounterprocedures() {
    return $this->belongsToMany(
        'App\MounterProcedures',
        'mounter_procedures_checks',
        'mounter_evaluation_id',
        'mounter_procedure_id'
    )->withPivot(['checked']);
}

\n这是我的存储函数:\n

public function store(Request $request, $idProiect) {
    $evaluation = MounterEvaluation::where('project_id', $idProiect)->first();
    if (!$evaluation) {
        $evaluation = new MounterEvaluation();
        $evaluation->project_id = $idProiect;
    }
    $evaluation->mentions = $request->mentions;
    $evaluation->save();
    // $request->request->add(['checked' => 1]);
    // $evaluation->mounterprocedures()->sync($request->procedures);
    // $evaluation->mounterprocedures()->sync($request->all() + ['checked' => 1]);
    $evaluation->mounterprocedures()->sync($request->procedures);
    // $request->request->add(['checked' => 1]);
    $evaluation->mounterprocedures()->request->add(['checked' => 1]);
    return response()->json($evaluation, 201);
}

\n每次有人在评估表单中勾选某个字段时,这个勾选将存储在枢轴表中。

0
0 Comments

问题的原因是在Laravel 5.7中如何将静态字段插入请求数组。解决方法是将值直接放入请求数组中,就像在任何其他数组中一样。在控制器中,可以通过将Request实例作为参数传递,然后像正常添加值一样来添加值。如果$request->procedures是一个数组,可以将其转换为数组并添加新的键值对。然而,有些问题可能会出现,比如在转换过程中出现错误,或者键值对没有按预期的方式添加到请求数组中。需要进一步了解$request->procedures数组的结构和预期结果,以确定问题的具体原因。

0