Clicky

Skocz do zawartości


Zdjęcie
- - - - -

Laravel 5 - view-composers

6 odpowiedzi w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 Maciej Płocki

Maciej Płocki

    Początkujący

  • Użytkownik
  • Pip
  • 12 postów

Napisano 05 luty 2015 - 21:26

http://laravel.com/d...#view-composers

Czy mógłby mi ktoś dokładniej wytłumaczyć ideę takiego rozwiązania i kiedy takie coś jest sens stosować?
 



#2 ara

ara

    Początkujący

  • Użytkownik
  • Pip
  • 7 postów

Napisano 06 luty 2015 - 06:30

Jak sama nazwa wskazuje komponuje widoki. Przykład tagów, kategorii na stronie. Może sobie zrobić tak, żeby skomponowany widok był dodawany do jakiegoś innego widoku(albo kilku) automatycznie. Tak jak w dokumentacji 

 View::composer('profile', 'App\Http\ViewComposers\ProfileComposer');

do widoku 'profile' zostają dodane dane o nazwie $count. Możesz te dane wykorzystać w widoku 'profile'.

View::composer(['profile', 'dashboard'], 'App\Http\ViewComposers\ProfileComposer');

Lub automatycznie dodawać do innych widoków, bez grzebania w kodzie, żeby te dane uzyskać:)



#3 Maciej Płocki

Maciej Płocki

    Początkujący

  • Użytkownik
  • Pip
  • 12 postów

Napisano 06 luty 2015 - 13:43

Czyli na prostym przykładzie:

router.php:

Route::any('/profile', function()
{
    return view('profile');
});

a wcześniej zrobiłem composer np . ten z dokumentacji, to rozumiem, że service provider już o to zadba  żeby wstrzyknąć dane do $count.

Co w przypadku kiedy chcę nadpisać dane z composera? można tak?:

Route::any('/profile', function()
{
    $data = ['count' => 'bar'];
    return view('profile', $data);
});


#4 ara

ara

    Początkujący

  • Użytkownik
  • Pip
  • 7 postów

Napisano 08 luty 2015 - 10:37

 

Czyli na prostym przykładzie:

router.php:

Route::any('/profile', function()
{
    return view('profile');
});

a wcześniej zrobiłem composer np . ten z dokumentacji, to rozumiem, że service provider już o to zadba  żeby wstrzyknąć dane do $count.

Co w przypadku kiedy chcę nadpisać dane z composera? można tak?:

Route::any('/profile', function()
{
    $data = ['count' => 'bar'];
    return view('profile', $data);
});

No musisz sptóbować:)



#5 Maciej Płocki

Maciej Płocki

    Początkujący

  • Użytkownik
  • Pip
  • 12 postów

Napisano 12 luty 2015 - 05:28

Tak jak się spodziewałem - nie działa :)
W przypadku view creators również.



#6 jarod21

jarod21

    Początkujący

  • Użytkownik
  • Pip
  • 1 postów

Napisano 05 maj 2015 - 15:28

nie wiem jak jest z composerem bo dopiero zaczynam zabawę z laravelem ale aby dodać dane do widoku to

$data = ['count' => 'bar'];
return View::make('profile')->with('data',$data);


#7 Maciej Płocki

Maciej Płocki

    Początkujący

  • Użytkownik
  • Pip
  • 12 postów

Napisano 08 maj 2015 - 08:30

view composer i tak nadpisze te dane, niestety.






Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych