0

我试图在通过更新species时将' ID 附加到其名称中,但由于某种原因,它有点循环,因此出现错误:observerSQLSTATE[22001]: String data, right truncated: 1406 Data too long for column

SpeciesController@update

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Species  $species
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Species $species)
    {
        $species->name = $request->name;
        $species->sort = $request->sort;

        $species->save();

        $updatedSpecies = new SpeciesResource($species);

        return response()->json(compact('updatedSpecies'), 200);
    }

SpeciesObserver@updated

    /**
     * Handle the species "updated" event.
     *
     * @param  \App\Species  $species
     * @return void
     */
    public function updated(Species $species)
    {
        $species->name = "$species->name - $species->id";

        $species->save();
    }

在此处输入图像描述

4

1 回答 1

1

updated事件总是被触发,因为您也将它保存在里面。请改用updating事件。

/**
 * Handle the species "updating" event.
 *
 * @param  \App\Species  $species
 * @return void
 */
public function updating(Species $species)
{
    $species->name = "$species->name - $species->id";
}
于 2021-04-03T15:41:03.950 回答