J'ai deux tables dans ma base de données: table de rôle et le rôle de la table de l'adhésionComment stocker et mettre à jour des données multiples dans Laravel
Table de rôle
Schema::create('roles', function (Blueprint $table) {
$table->increments('id');
$table->string('RoleName');
$table->boolean('IsAllCategory')->nullable()->default(0);
$table->boolean('IsUserCanLogin')->nullable()->default(1);
$table->timestamps();
});
rôle de la table de membres
Schema::create('role_memberships', function (Blueprint $table) {
$table->increments('id');
$table->integer('role_id');
$table->string('MembershipName');
$table->text('MembershipValue');
$table->timestamps();
});
I avoir une ligne de données dans la table de mon rôle avec RoleName = 'Admin', puis je définis l'appartenance .. chaque fois que je stocke les données d'appartenance au rôle dans la base de données, il va stocker comme deux lignes avec le même rôle_id .. Ceci est mon contrôleur appartenance à un rôle
public function show($id)
{
$role = Role::findOrFail($id);
$postAdMaxImage = DB::table('role_memberships')->where('role_id', $role->id)->where('MembershipName' , 'PostAdMaxImage')->first();
$postAdExpiredDay = DB::table('role_memberships')->where('role_id', $id)->where('MembershipName' , 'PostAdExpiredDay')->first();
return view('pages/back-end/forms/role/membership')->with('role', $role)
->with('postAdMaxImage', $postAdMaxImage)
->with('postAdExpiredDay', $postAdExpiredDay);
}
public function update(Request $request, $id)
{
$role = Role::findOrFail($id);
$membership = [
['role_id' => $id, 'MembershipName' => 'PostAdMaxImage', 'MembershipValue' => $request->PostAdMaxImage ? $request->PostAdMaxImage : ''],
['role_id' => $id, 'MembershipName' => 'PostAdExpiredDay', 'MembershipValue' => $request->PostAdExpiredDay ? $request->PostAdExpiredDay : '']
];
DB::table('role_memberships')->insert($membership);
return response()->json(array($role, $membership));
}
Le premier problème est en fonction show .. Je ne peux pas utiliser d'abord() .. Je veux obtenir les données pour le montrer dans mon avis
<div class="form-group">
<div class="col-md-6">
<label>Membership</label><br>
<label>Maximum Gambar untuk Iklan</label>
<div class="row">
<div class="col-md-10">
<input type="text" name="PostAdMaxImage" class="form-control" value="{{$postAdMaxImage->MembershipValue}}">
</div>
<div class="col-md-2" style="padding: 0 !important">
<h5>Gambar</h5>
</div>
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6">
<label>Masa Berlaku Iklan</label>
<div class="row">
<div class="col-md-10">
<input type="text" name="PostAdExpiredDay" class="form-control" value="{{$postAdExpiredDay->MembershipValue}}>
</div>
<div class="col-md-2" style="padding: 0 !important">
<h5>Hari</h5>
</div>
</div>
</div>
</div>
le deuxième problème est, quand je veux modifier les membres .. Il stockera que deux nouvelles lignes, pas à jour les deux dernières lignes
ce que vous entendez par ** I ne peut pas utiliser d'abord() ** – madalinivascu
dans le deuxième problème votre mise à jour est en fait une fonction de création, vous devez mettre à jour le champ pas insérer de nouveaux – madalinivascu
@madalinivascu dans ma fonction show() .. J'essaie d'utiliser first() pour obtenir des données uniques .. mais il montre une erreur 'The Respo le contenu nse doit être une chaîne ou un objet implémentant __toString(), "object" donné. –