《PHP应用:跟我学Laravel之视图 & Response》要点:
本文介绍了PHP应用:跟我学Laravel之视图 & Response,希望对您有用。如果有疑问,可以联系我们。
PHP应用基本Response
PHP应用从路由中返回字符串
PHP应用创建自定义Response
PHP应用Response类继承自Symfony\Component\HttpFoundation\Response类,提供了多种办法用于构建HTTP Response.
PHP应用$response->header('Content-Type', $value);
PHP应用return $response;
PHP应用如果需要拜访 Response 类的方法,但又要返回一个视图作为响应的内容,通过使用 Response::view 方法可以很容易实现:
PHP应用在Response中添加Cookie
PHP应用return Response::make($content)->withCookie($cookie);
PHP应用重定向
PHP应用返回一个重定向
PHP应用return Redirect::to('user/login');
返回一个带有数据的重定向
PHP应用return Redirect::to('user/login')->with('message', 'Login Failed');
注意: with 办法将数据写到了Session中,通过Session::get 办法即可获取该数据.
返回一个重定向至命名路由
PHP应用return Redirect::route('login');
返回一个重定向至带有参数的命名路由
PHP应用return Redirect::route('profile', array(1));
返回一个重定向至带有命名参数的命名路由
PHP应用return Redirect::route('profile', array('user' => 1));
返回一个重定向至控制器Action
PHP应用return Redirect::action('HomeController@index');
返回一个重定向至控制器Action并带有参数
PHP应用return Redirect::action('UserController@profile', array(1));
返回一个重定向至控制器Action并带有命名参数
PHP应用return Redirect::action('UserController@profile', array('user' => 1));
PHP应用视图
PHP应用视图通常包括应用中的HTML代码,为分离表现层与控制器和业务逻辑提供了便利.视图存放于app/views目录.
PHP应用一个简单视图案例:
PHP应用<html>
<body>
<h1>Hello, <?php echo $name; ?></h1>
</body>
</html>
PHP应用通过如下办法来返回该视图到浏览器:
PHP应用传递给View::make办法的第二个参数是一个数组,它将被传递给视图.
PHP应用传递数据给视图
PHP应用// Using Magic Methods
$view = View::make('greeting')->withName('steve');
PHP应用在上面的案例中,$name变量在视图内是可以拜访的,其值为Steve.
PHP应用你还可以在所有视图同共享同一数据:
PHP应用View::share('name', 'Steve');
PHP应用向视图传递子视图
PHP应用或许你可能想将一个视图放入到另一个视图中.例如,将存放在app/views/child/view.php文件中的子视图传递给另一视图,如下:
PHP应用$view = View::make('greeting')->nest('child', 'child.view', $data);
PHP应用在父视图就可以输出该子视图了:
PHP应用视图合成器
PHP应用视图合成器可以是回调函数或者类办法,它们在创建视图时被调用.如果你想在应用程序中,每次创建视图时都为其绑定一些数据,使用视图合成器可以将代码组织到一个地方.因此,视图合成器就好像是 “视图模型”或者是“主持人”.
PHP应用定义一个视图合成器
PHP应用现在,每次创建profile视图时,count都会被绑定到视图中.
PHP应用你也可以为多个视图同时绑定一个视图合成器:
PHP应用如果你更喜欢使用基于类的视图合成器,IoC container可以提供更多便利,如下所示:
PHP应用View::composer('profile', 'ProfileComposer');
PHP应用视图合成器类定义如下:
PHP应用 public function compose($view)
{
$view->with('count', User::count());
}
PHP应用}
PHP应用注意,没有规定视图合成器类存放在哪里.因此,你可以任意存放,只要能在composer.json文件中指定位置并自动加载即可.
PHP应用视图创建器
PHP应用视图 创建器 与视图合成器的工作方式几乎完全相同;区别在于当一个视图被实例化后就会立即触发视图创建器.视图创建器通过 creator 办法方便地定义:
PHP应用特殊Response
PHP应用创建一个JSON Response
PHP应用return Response::json(array('name' => 'Steve', 'state' => 'CA'));
创建一个JSONP Response
PHP应用return Response::json(array('name' => 'Steve', 'state' => 'CA'))->setCallback(Input::get('callback'));
创建一个文件下载Response
PHP应用return Response::download($pathToFile);
PHP应用return Response::download($pathToFile, $status, $headers);
注意: Symfony HttpFoundation 用于处理文件下载,要求下载的文件的文件名只包括 ASCII 字符.
PHP应用Response 宏
PHP应用如果希望自定义一个 response ,以便在你应用程序中的许多路由和控制器中进行重用,可以使用 Response::macro 办法:
PHP应用macro 办法接受两个参数,一个指定和名称和一个闭包.当通过 Response 类调用该名称的宏时,闭包就会被执行:
PHP应用return Response::caps('foo');
你可以在 app/start 目录里的文件中定义宏.或者,你也可以通过一个单独的文件组织你的宏,并将该文件包括至某个 start 文件中.
欢迎参与《PHP应用:跟我学Laravel之视图 & Response》讨论,分享您的想法,维易PHP学院为您提供专业教程。