Laravel - polska dokumentacja

Nieoficjalne tłumaczenie dla wersji 4.0

Widoki i dane wyjściowe

Podstawowe dane wyjściowe

Zwracanie ciągów za pomocą reguł routingu

Route::get('/', function()
{
    return 'Hello World';
});

Tworzenie własnych danych wyjściowych

Instancja Response dziedziczy z klasy Symfony\Component\HttpFoundation\Response i dostarcza wielu metod do budowy odpowiedzi HTTP.

$response = Response::make($contents, $statusCode);

$response->header('Content-Type', $value);

return $response;

Dołączanie ciasteczka do danych wyjściowych

$cookie = Cookie::make('name', 'value');

return Response::make($content)->withCookie($cookie);

Przekierowania

Zwracanie przekirowania

return Redirect::to('user/login');

Zwracanie przekierowania z danymi sesyjnymi (typu flash)

return Redirect::to('user/login')->with('message', 'Login Failed');

Uwaga: Ponieważ metoda with() przekazuje dane do sesji, możesz zwrócić te dane (jak zawsze) za pomocą metody Session::get.

Zwracanie przekierowania do nazwanej reguły routingu

return Redirect::route('login');

Zwracanie przekierowania do nazwanej reguły routingu z parametrami

return Redirect::route('profile', array(1));

Zwracanie przekierowania do nazwanej reguły routingu z nazwanymi parametrami

return Redirect::route('profile', array('user' => 1));

Zwracanie przekierowania do akcji kontrolera

return Redirect::action('HomeController@index');

Zwracanie przekierowania do akcji kontrolera z parametrami

return Redirect::action('UserController@profile', array(1));

Zwracanie przekierowania do akcji kontrolera z nazwanymi parametrami

return Redirect::action('UserController@profile', array('user' => 1));

Widoki

Widoki zazwyczaj zawierają kod HTML Twojej aplikacji i są wygodnym sposobem na odseparowanie kontrolerów i głównej logiki aplikacji od wartwy prezentacji. Widoki znajdują się w katalogu app/views.

Prosty widok może wyglądać w ten sposób:

<!-- View stored in app/views/greeting.php -->

<html>
    <body>
        <h1>Hello, <?php echo $name; ?></h1>
    </body>
</html>

Ten widok może zostać zwrócony do przeglądarki w ten sposób:

Route::get('/', function()
{
    return View::make('greeting', array('name' => 'Taylor'));
});

Drugi argument przypisany do View::make jest tablicą z danymi, które powinny być dostępne w widoku.

Przekazywanie danych do widoku

$view = View::make('greeting')->with('name', 'Steve');

W powyższym przykładzie, zmienna $name będzie dostępna w widoku i zawierać będzie wartość Steve.

Jeśli chcesz, to dla metody make w drugim parametrze, możesz przypisać całą tablicę zmiennych.

$view = View::make('greeting', $data);

Możesz również udostępniać dane dla wszystkich widoków jednocześnie:

View::share('name', 'Steve');

Przekazywanie widoku do widoku

Czasami możesz zechcieć przekazać widok, do drugiego widoku. Dla przykładu, mając widok w katalogu app/views/child/view.php, moglibyśmy go przekazać do innego widoku w ten sposób:

$view = View::make('greeting')->nest('child', 'child.view');

$view = View::make('greeting')->nest('child', 'child.view', $data);

"Podwidok" może być wtedy wyświetlony z głównego widoku w ten sposób:

<html>
    <body>
        <h1>Hello!</h1>
        <?php echo $child; ?>
    </body>
</html>

Kompozytorzy widoku

Kompozytorzy widoku, to żądania zwrotne lub metody klasy, które są wywoływane, kiedy widok jest renderowany. Jeśli masz dane, które chcesz powiązać z danym widokiem, za każdym razem kiedy jest on renderowany przez Twoją aplikację, to za pomocą kompozytora widoku możesz umieścić kod w jednym miejscu. Kompozytorzy widoku mogą funkcjonować jak "widoki modelów" lub "prezenterzy".

Definiowanie kompozytora widoku

View::composer('profile', function($view)
{
    $view->with('count', User::count());
});

Teraz, za każdym razem kiedy renderowany jest widok profile, wartość count będzie powiązywana z widokiem.

Możesz dołączyć kompozytora widoku do wielu widoków jednocześnie:

View::composer(array('profile','dashboard'), function($view)
{
    $view->with('count', User::count());
});

Jeśli wolisz używać kompozytora opartego o klasę, co będzie miało swoje zalety poprzez dostęp za pomocą kontenera IoC, możesz zrobić tak:

View::composer('profile', 'ProfileComposer');

Klasa kompozytora widoku powinna być zdefiniowana w ten sposób:

class ProfileComposer {

    public function compose($view)
    {
        $view->with('count', User::count());
    }

}

Zwróć uwagę, że nie ma żadnej przyjętej konwencji dla lokalizacji plików kompozytora widoku. Możesz je umieszczać gdzie chcesz, jeśli tylko będą mogły być automatycznie ładowane za pomocą dyrektyw w pliku composer.json.

Kreatory widoku

Kreatory widoku działają prawie identycznie jak kompozytorzy widoku, jednak z tą różnicą, że uruchamiane są od razu po tym jak tworzony jest widok. Aby zarejestrować kreator widoku, wystarczy skorzystać z metody creator:

View::creator('profile', function($view)
{
    $view->with('count', User::count());
});

Specjalne dane wyjściowe

Tworzenie odpowiedzi JSON

return Response::json(array('name' => 'Steve', 'state' => 'CA'));

Tworzenie odpowiedzi JSONP

return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));

Tworzenie odpowiedzi zwracającej plik

return Response::download($pathToFile);

return Response::download($pathToFile, $name, $headers);
Fork me on GitHub