• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Laravel响应和视图

php 搞代码 4年前 (2022-01-23) 24次浏览 已收录 0个评论

基础响应

//直接响应字符串
Route::get(‘example/test20’, function(){
return ‘hello world’;
});
//定制HTTP响应
Route::get(‘example/test21’, function(){
return Response::make(‘内容不存在’, 404);
});
//响应视图
Route::get(‘example/test22’, function(){
return Response::view(‘test22’);
});
//给响应添加cookie
Route::get(‘example/test23’, function(){
return Response::view(‘test22’)->withCookie(Cookie::make(‘key’, ‘this is value’));

响应重定向

//响应重定向
Route::get(‘example/test24’, function(){
return Redirect::to(‘example/test21’)->with(‘username’, ‘xiaoming’);
});
//带上数据的重定向
Route::get(‘example/test25’, function(){
//with 方法将数据写到了Session中,通过Session::get 方法即可获取该数据。
return Redirect::to(‘example/test21’)->with(‘username’, ‘xiaoming’);
});
//重定向至命名路由
return Redirect::route(‘login’);
//重定向值带有命名参数的命名路由
return Redirect::route(‘profil本%文来源gaodaimacom搞#^代%!码网@搞代gaodaima码e’, array(‘user’ => 1));
//重定向至指定的控制器方法
return Redirect::action(‘HomeController@index’);
//重定向至指定的控制器方法,并可带上参数
return Redirect::action(‘UserController@profile’, array(‘user’ => 1));

响应视图

//响应视图并传递参数
Route::get(‘example/test30’, function(){
//第一种方式
return View::make(‘test30’, array(‘name’ => ‘xiaoming’));
//第二种方式
//return View::make(‘test30’)->with(‘name’, ‘xiaoming2’);
//第三种方式
//return View::make(‘test30’)->withName(‘xiaoming3’);
//第四种方式,注:在所有视图中共享同一数据
//View::share(‘name’, ‘Steve’);
});
//在视图中传入子视图
Route::get(‘example/test31’, function(){
$data = array(‘name’ => ‘john’);
//子视图放在app/views/child/child_view.php, 你也可以向其传递变量
return View::make(‘test30’)->with($data)->nest(‘child’, ‘child.child_view’, $data);
});

视图组件或视图合成器

如果你希望视图被创建时,就绑上指定数据,可以定义视图组件:

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

给视图组件添加多视图:

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

如果你使用基于类的视图组件:

View::composer(‘profile’, ‘ProfileComposer’);

视图组件类这样创建:

class ProfileComposer {
public function compose($view)
{
$view->with(‘count’, User::count());
}
}

特殊响应

//创建JSON响应
return Response::json(array(‘name’ => ‘Steve’, ‘state’ => ‘CA’));
//创建JSONP响应
return Response::json(array(‘name’ => ‘Steve’, ‘state’ => ‘CA’))->setCallback(Input::get(‘callback’));
//文件下载响应
return Response::download($pathToFile);
return Response::download($pathToFile, $name, $headers);
注意:管理文件下载的类库Symfony HttpFoundation要求文件名是ASCII编码的。

响应宏,使用Response::macro自定义响应

Response::macro(‘caps’, function($value)
{
return Response::make(strtoupper($value));
});

macro 方法接受两个参数,一个指定宏名称和一个闭包。当通过 Response 类调用该名称的宏时,闭包就会被执行:

return Response::caps(‘foo’);

你可以在 app/start 目录里的文件中定义宏。或者,你也可以通过一个单独的文件组织你的宏,并将该文件包含至某个 start 文件中。

转载于http://www.phpddt.com/php/laravel-response.html


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Laravel响应和视图

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址