I have these two Models :
Club.php
class Club extends Model implements AuthenticatableContract, AuthorizableContract, JWTSubject
{
use Authenticatable, Authorizable;
// because name of the class != table name
protected $table = 'sf_club';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'login', 'email', 'nom_equipe', 'avatar', 'nation_id', 'argent',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
'password',
];
}
Stade.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Stade extends Model
{
// because name of the class != table name
protected $table = 'sf_stade';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'club_id', 'prix_place', 'capacite', 'entretien',
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = [
];
}
In my database the field club_id from Stade table is a foreign key linked to table Club column id.
I have a method in my controller called Register, this is the method :
public function register(Request $request)
{
//validate incoming request
$this->validate($request, [
'login' => 'required|string|unique:sf_club',
'email' => 'required|email|unique:sf_club',
'password' => 'required|confirmed',
'nom_club' => 'required|string|unique:sf_club,nom_equipe',
'nation_id' => 'required|exists:sf_nation,id'
]);
try {
$club = new Club();
$club->login = $request->input('login');
$club->email = $request->input('email');
$plainPassword = $request->input('password');
$club->password = app('hash')->make($plainPassword);
$club->nom_equipe = $request->input('nom_club');
$club->nation_id = $request->input('nation_id');
$club->argent = $this->argentDepart;
$club->save();
$stade = new Stade();
$stade->club_id = $club->id;
$stade->save();
//return successful response
return response()->json(['user' => $club->nom_equipe, 'message' => 'CREATED'], 201);
} catch (\Exception $e) {
//return error message
return response()->json(['message' => 'User Registration Failed!'], 409);
}
}
The problem that I have is that the Club model is saved correctly after the $club-save()
but the function return a 409 error and the stade is never saved. My question is : why the Stade is not saved after $stade->save()
?
Thanks in advance
source https://stackoverflow.com/questions/70414121/lumen-save-is-not-working-after-an-other-save
Comments
Post a Comment