Laravel 10
Divers
Ma première application Laravel 10
Cours Laravel 10
Laravel 10 a été publié officiellement. J’en profite pour toiletter mon cours.
I – Les bases
- Présentation générale
- Un environnement de développement
- Installation et organisation
- Le routage
- Les réponses
- Artisan et les contrôleurs
- Formulaires et middlewares
- La validation
- Envoyer un email
- Configuration, session et gestion de fichiers
- Injection de dépendance, conteneur et façades
II – Les données
- Migrations et modèles
- Jouer avec Eloquent
- Les ressources (1/2)
- Les ressources (2/2)
- La relation 1:n
- La relation n:n
- Le polymorphisme
- Les ressources d’API
III – La sécurité
- L’authentification
- L’oubli du mot de passe
- Jetstream
- Gestion du profil et API
- Les équipes
- On se protège
IV – Plus loin avec Laravel
11 commentaires
DIM
pluck(‘title’,’id’);
return view(‘back.service.form’,compact(‘category’));
}
/**
* Store a newly created resource in storage.
*/
public function store(ServiceRequest $request, Service $service)
{
Service::create($request->all());
return back()->with(‘ok’,__(‘The service has been created’));
}
/**
* Display the specified resource.
*/
public function show(string $id)
{
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Service $service)
{
$category = Category::all()->pluck(‘title’,’id’);
return view(‘back.service.form’,compact(‘category’,’service’));
}
/**
* Update the specified resource in storage.
*/
public function update(ServiceRequest $request, $id)
{
$service_up = Service::find($id);
$service_up->update($request->all());
return back()->with(‘ok’, __(‘The Service has been updated’));
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Service $service)
{
$service->delete();
return response()->json();
}
}
la serviceRequest
<?php
namespace App\Http\Requests\Back;
use App\Rules\Slug;
use Illuminate\Foundation\Http\FormRequest;
class ServiceRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*/
public function authorize(): bool
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
‘title’ => ‘string|max:255|required’,
‘desc’ => ‘string|max:1000|required’,
‘slug’ => ‘required|max:255’,
‘category’=>’required’,
];
}
}
la relation dans le modèle service
public category()
{
return $this->belongsTo(Category::class);
}
dans le modèle catégorie
public services()
{
return $this->hasMany(Service::class);
j’aimerai en fait insérer un nouveau service et sa catégorie
bestmomo
Et ça ne fonctionne pas ? Tu as bien prévu la propriété fillable ou guarded dans ton modèle Service?
DIM
oui et dans le formulaire j’ai mis le name comme j’ai appelé la relation dans service c a d category
DIM
dois-je plutot mettre category_id dans le formualire comme name du champ de la catégorie ?
bestmomo
Non, il faut les mêmes noms que tes colonnes de la table. vérifie ce qui arrive dans ta fonction Store :
dd($request->all())
DIM
Ne penses-tu pas que ça soit lié à ce champ
categories : collect() »
input=’selectMultiple’
:options= »$category »>
c’est le même composant que ce qui a été utilisé pour le projet du blog
DIM
Salut best , j’ai une relation entre les categories et les services de sorte qu’une catégorie à plusieurs services et un service une catégorie , quand j’éssaie d’ajouter des services j’utilise la fonction store suivante
public function store (ServiceRequest $request)
{
Service::create($request->all());
bestmomo
Salut,
Apparemment, il manque un morceau de ta question.
DIM
j’ai l’erreur array to string conversion
bestmomo
Ça c’est étrange…
Regarde le résultat avec
var_dump($request->all());
DIM
En fait le truc est que j’utilisais la sélection multiple au lieu de select tout court hors dans le composant input , la sélection multiple récupérait un tableau ce qui ne correspondait pas avec ce que la base de données attendait.