2013-05-12 11 views
11

Tworzę podstawowy widok listy postów i potrzebuję linku do strony "edytuj".Szablony ostrzy Laravel, zmienna foreach w URL :: to?

Używam ostrza, a to, co mam, to stół z pętlą foreach, pokazujący każdy post wraz z przyciskami edycji/usuwania.

Co chciałem zrobić, to użyć adresu URL ostrza :: do dla linków do stron edycji i usunięcia, aby zapewnić spójne linki.

Kod Próbowałem użyciu (pamiętaj, to jest wewnątrz pętli foreach stąd $ post-> id VAR) jest taka:

<a href="{{ URL::to('admin/posts/edit/$post->id') }}" class="btn btn-mini btn-primary">Edit Post</a> 

Jednak to nie działa. Próbowałem także

który również nie działa.

I nie dostać żadnego błędu, link dosłownie kończy się:

http://domain.dev/admin/posts/$post->id 

Czy istnieje jakiś sposób pracy wokół to?

Odpowiedz

20

Myślę, że problem polega na tym, że używasz zmiennej php ($ post) w ciągu znaków z pojedynczym '. W tym przypadku po prostu wyprowadza nazwę zmiennej. Wypróbuj to:

<a href="{{ URL::to('admin/posts/edit/' . $post->id) }}" class="btn btn-mini btn-primary">Edit Post</a> 

Mam nadzieję, że to pomoże. Vlad

13

Vlad już dał właściwą odpowiedź na pytanie, ale należy pamiętać, że można również bezpośrednio odwołuje się do działania kontrolera poprzez URL::action:

<a href="{{ URL::action('Admin\[email protected]', $post->id) }}">Edit</a> 
+0

Dzięki za to. Pomogło to rozwiązać mój problem, gdy sądziłem, że link do akcji będzie świadomy zestawu zmiennych pasujących do zmiennych na trasie. Bynajmniej. Musiałem przekazać go jako drugi parametr. – RedGlobe

1

{{ }} są równe <?php echo ;?>

jeśli wstawiasz pojedynczy ' <?php echo '$hello' ?> = $ hello

ale jeśli umieścić podwójne ' (") -><?php "$hello" ;?> = Hello World (tylko jeden przykład)

Musisz napisać coś podobnego {{ URL::to("admin/posts/edit/$post->id") }}

0

Innym sposobem

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

mieliśmy problem z tym w laravel 5 tak myślę, że wpadnę na to, nawet jeśli pytanie jest stare. Rozwiązany mój problem korzystając

{{ URL::to('/box').'/'.$box->id }}

lub
{{ url('/box').'/'.$box->id }}

0

Również można użyć route() pomocnika do generowania URL wg nazwy trasy.Na przykład definicja trasy:

Route::get('/test/mypage/{id}', '[email protected]')->name('my_route_name'); 

kod w widoku:

<a href="{{ route('my_route_name', $row['id']) }}">{{ $row['name'] }}</a>