Le blog ne s'affiche pas ou n'est pas stocké correctement dans la base de données
P粉111641966
2023-09-01 17:46:54
<p>Une fois que je supprime un blog, il est complètement supprimé. Je peux créer un nouveau blog mais il n'apparaîtra pas sur le site Web ou dans la base de données. Voici mon BlogController : </p>
<pre class="brush:php;toolbar:false;"><?php
espace de noms AppHttpControllers ;
utilisez AppModelsBlog ;
utilisez IlluminateHttpRequest ;
la classe BlogController étend le contrôleur
{
/*** Afficher la liste des ressources.
*
* @return IlluminateHttpResponse*/
index de fonction publique()
{
$blog = Blog::paginer(5);
return view('blogs.index', compact('blog'))
->with('i',(request()->input('page',1)-1)*5);
}
/*** Afficher le formulaire de création de nouvelles ressources.
*
* @return IlluminateHttpResponse*/
fonction publique créer()
{
return view('blogs.create');
Blog::create($request->all());
return redirect()->route('blogs.index')
->with('succès','Blog créé avec succès.');
}
/*** Stockez les ressources nouvellement créées dans le stockage.
*
* @param IlluminateHttpRequest $request
* @return IlluminateHttpResponse*/
magasin de fonctions public (Requête $requête)
{
$request->valider([
'titre' => 'obligatoire',
'description' => 'obligatoire',
]);
$blog = nouveau blog ;
$blog->titre = $requête->titre;
$blog->description = $requête->description;
$blog->sauvegarder();
return redirect()->route('blogs.index');
}
/*** Afficher la ressource spécifiée.
*
* @param AppBlog $blog
* @return IlluminateHttpResponse*/
spectacle de fonction publique (Blog $blog)
{
return view('blogs.show', compact('blog'));
}
/*** Afficher le formulaire de modification de la ressource spécifiée.
*
* @param AppBlog $blog
* @return IlluminateHttpResponse*/
édition de fonction publique (Blog $blog)
{
return view('blogs.edit', compact('blog'));
}
/*** Mettez à jour la ressource spécifiée dans le stockage.
*
* @param IlluminateHttpRequest $request
* @param AppBlog $blog
* @return IlluminateHttpResponse*/
mise à jour de la fonction publique (Requête $request, Blog $blog)
{
$request->valider([
'titre' => 'obligatoire',
'description' => 'obligatoire',
]);
// $blog->titre = $request->titre;
// $blog->description = $request->description;
$blog->fill($request);
//jj($blog);
return redirect()->route('blogs.index')
->with('succès','Blog mis à jour avec succès');
}
/**
* Supprimez la ressource spécifiée du stockage.*
* @param AppBlog $blog
* @return IlluminateHttpResponse
*/
fonction publique détruire (Blog $blog)
{
$blog->supprimer();
return redirect()->route('blogs.index')
->with('succès','Blog supprimé avec succès');
}
}</pré>
<p>Le problème se produit apparemment à la ligne 103, mise à jour de la fonction publique : <code> $blog->fill($request);</code> Il n'est ni stocké dans la base de données ni dans la page Web/le blog. visible. J'ai essayé de supprimer cette ligne mais j'ai obtenu le même résultat. Rien ne change. Je ne comprends pas quel pourrait être le problème. Quelqu'un peut-il m'aider ? </p>
La première option est de faire
fill
方法起作用,您必须在此之后调用$blog->save()
.De plus, lorsque vous utilisez la méthode
fill
, vous effectuez un devoir groupé. Par défaut, Laravel vous protège des champs attribués en masse.Ouvrez votre
Blog.php
模型,并将要批量赋值的字段添加到数组$fillable
中La deuxième option est d'utiliser la méthode
update
方法(不要忘记在第一种选择的模型中也添加字段到$fillable
,因为update
qui est aussi un champ d'affectation par lots) :La troisième option consiste à attribuer manuellement chaque champ un par un, comme vous l'avez fait dans la méthode
store
: