web-dev-qa-db-fra.com

Laravel modèles de lame, foreach variable dans URL :: to?

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?

11
Sk446

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

22
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>
13
Holger Weis

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") }}

1
Christian

Autrement

<a href="{{URL::to('/')}}/admin/posts/edit/{{$post->id}}">Edit</a>
0
Suresh Bala

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>
0
mnv

Je pense que ça va marcher

<a href="{{ url('test/'.$post->id.'/view') }}"></a>
0
Abdulmajeed