2 votes

Comment créer une route unique pour permettre des modifications/mises à jour sur plusieurs pages en tant qu'administrateur ?

J'ai créé une application et maintenant elle devrait permettre à un administrateur de mettre à jour le contenu à partir de la façade. J'ai intégré TinyMCE. Jusqu'ici tout va bien. Cependant, au lieu de créer des centaines de routes

Route::post('/category1/person1', [
    'uses' => 'MainController@infoupdate',
    'as' => 'infoupdate',
]);

Route::post('/category1/person2', [
    'uses' => 'MainController@infoupdate',
    'as' => 'infoupdate2',
]);

etc...

En gardant à l'esprit le principe du DRY, je veux utiliser une seule route. J'ai essayé d'utiliser le mais cela me donne une erreur :

paramètres de route manquants

Route::post('/{type}/{person}', [
    'uses' => 'MainController@infoupdate',
    'as' => 'infoupdate',
])->where(['type' => '(actors|authors)', 'person' => '.*']);

La vue :

@if($admin)
    <form action="{{ route('infoupdate') }}" method="post">
        <div class="form-group">
            <label for="textareaeditor"></label>
            <textarea name="content" rows="10" class="form-control" id="textareaeditor"></textarea>
        </div>
        {{ csrf_field() }}
        <button type="submit">Update</button>
    </form>
@endif

Qu'est-ce que je rate ?

0voto

Diogo Sgrillo Points 1454

Le problème est dans votre vision. Lors de la création du formulaire, vous devez passer les paramètres nécessaires à la création de la route :

@if($admin)
<form action="{{ route('infoupdate', ['type' => 'actors', 'person' => 'person1']) }}" method="post">
    <div class="form-group">
        <label for="textareaeditor"></label>
        <textarea name="content" rows="10" class="form-control" id="textareaeditor"></textarea>
    </div>
    {{ csrf_field() }}
    <button type="submit">Update</button>
</form>
@endif

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X