Je crée une vue de base des articles et j'ai besoin d'un lien vers la page "modifier".
J'utilise blade, et ce que j'ai est un tableau, avec une boucle foreach, montrant chaque message avec les boutons modifier/supprimer.
Ce que je voulais faire, c'est utiliser l'URL de la lame :: to pour les liens vers les pages d'édition et de suppression, afin de garantir la cohérence des liens.
Le code que j'ai essayé d'utiliser (souvenez-vous qu'il s'agit d'une boucle foreach et que la variable $ post-> id var) est le suivant:
<a href="{{ URL::to('admin/posts/edit/$post->id') }}" class="btn btn-mini btn-primary">Edit Post</a>
Cependant, cela ne fonctionne pas. J'ai aussi essayé
<a href="{{ URL::to('admin/posts/edit/<?php echo $post->id; ?>') }}" class="btn btn-mini btn-primary">Edit Post</a>
qui ne fonctionne pas non plus.
Je ne reçois aucune erreur, le lien finit littéralement par être:
http://domain.dev/admin/posts/$post->id
Y a-t-il un moyen de contourner ce problème?
Je pense que le problème est que vous utilisez la variable php ($ post) dans une chaîne avec un seul '
. Dans ce cas, il ne sort que le nom de la variable. Essaye ça:
<a href="{{ URL::to('admin/posts/edit/' . $post->id) }}" class="btn btn-mini btn-primary">Edit Post</a>
J'espère que cela aide . Vlad
vlad a déjà donné la bonne réponse à votre question mais sachez que vous pouvez également créer un lien direct avec l'action de votre contrôleur via URL::action
:
<a href="{{ URL::action('Admin\PostsController@edit', $post->id) }}">Edit</a>
Le {{ }}
est égal à <?php echo ;?>
si vous mettez single '
<?php echo '$hello' ?>
= $ bonjour
mais si vous mettez double ' (")
-> <?php "$hello" ;?>
= Hello World (juste un exemple)
Vous devez écrire quelque chose comme {{ URL::to("admin/posts/edit/$post->id") }}
Autrement
<a href="{{URL::to('/')}}/admin/posts/edit/{{$post->id}}">Edit</a>
Vous pouvez aussi utiliser route()
helper pour générer l’URL par nom de route. Par exemple, définition de route:
Route::get('/test/mypage/{id}', 'MyController@myAction')->name('my_route_name');
Code à votre avis:
<a href="{{ route('my_route_name', $row['id']) }}">{{ $row['name'] }}</a>
Je pense que ça va marcher
<a href="{{ url('test/'.$post->id.'/view') }}"></a>