主要是 见 /framework/src/Illuminate/Http/Request.php 里在的方法吧
request()->headers->get('referer') ; request对象可以通过 request() 方法 来获取 返回上一个页面
return URL::previous(); 也是上一个页面
1) $request->is('articles/create') 看这个$request 请求的url是否为真
2) $request->has('foo') 是 post 路径中有post 提交的 input 的name 为 'foo' 的值
3) $request->user() 得到当前用户 user
4) $request->notice 这个notice 就是 /notice/80 这个路径下的80 因为打印 $request->route()->parameters() 得到的就是得到所有的数组 array(1) { ["notice"]=> string(2) "80" }
$request->route()->parameters('notice') 也是得到所有的数组
( $request->route()->parameters('aaaaa') ) 也是得到所有的数组
array(1) { ["notice"]=> string(2) "80" }
事实上 parameters()方法 (复数方法) 是不需要参数的,当然有了参数也不会报错
$request->route()->parameter('notice') 得到的就是 80; 这里parameter方法 (单数方法)是需要参数的,没有参数就会报错
Request::except(['p']这是? 后面的参数 除了键为p的参数
Request::only(['p']这是? 后面的参数 仅仅键为p的参数
Request::all() 这是? 后面的参数 所以参数数组
$request->query() ;var_dump($request->query()); 网址为 http://www.aa.com/aaaa/bbbb?total=1&orderby_count_term_id=asc
$request->query()与 $request->all(),结果是一样的
得到 array(2) {
["total"]=>
string(1) "1"
["orderby_count_term_id"]=>
string(3) "asc"
}
$request->getQueryString();假设网址为 http://www.aa.com//student-total?total=1&orderby_total_tuition=asc&aaa=111
得到 aaa=111&orderby_total_tuition=asc&total=1
5)通过 dump($request) 或者 dd($request) 来看看值
6) Request::get('searchtype') (或者Request::input('searchtype')) (或者 request()->input('searchtype')) blade.php 模板中使用
<input class="search_1" type="text" name="search" maxlength="16" size="20" value="{{ Request::input('search')?Request::input('search'):'输入搜索的内容' }}" onfocus="if('输入搜索的内容' == this.value){this.value = ''; this.style.color = '#000'};" />
7) $request->input('username') 得到get或post的传值
8) Request::old('username') 也就是 old('username') 在模板中使用
9) Request::ajax() 判断是否是 ajax
10)假如是 http://my.tuiguang.com?aa=11 即 (http://my.tuiguang.com/?aa=11)
Request::path() 就是 '/'
11) http://www.wangzhangaiban.com/categorys/14?page=2
Request::getRequestUri();得到的是 /categorys/14?page=2
11) $domain = substr (Request::root(), 7);
'http://my.tuiguang.com/?aa=11' 获取 Request::url() Request::url() 就是 'http://my.tuiguang.com' 就是当前的url吧 当前路径
下面这个有大用
网址 http://my.earsdi.com/common-user/0?aa=1
{{ Request::path() }} //结果 common-user/0
{{ Request::getRequestUri() }} //结果 /common-user/0?aa=1BB
{{ Request::url() }} //结果 http://my.earsdi.com/common-user/0
{{ Request::fullUrl() }} //结果 http://my.earsdi.com/common-user/0?aa=1
{{ Request::fullUrlWithQuery(['orderby_xiao_fei_num'=>'desc'] }} 就是 http://my.earsdi.com/common-user/0?aa=1&orderby_xiao_fei_num=desc 假如原来的fullUrl()里面的
含有 orderby_xiao_fei_num=asc,,,那么orderby_xiao_fei_num=desc将替换掉原来的orderby_xiao_fei_num=asc
Request::fullUrl() 就是 'http://my.tuiguang.com/?aa=11'12)if($request->isMethod('post')){ } 判断是否是 post 提交
14)$method = Request::method(); 'GET' 或者 'POST'15) $request->route()->parameter('subdomain') //这个有大用16) $request->route()->parameters() //这个有大用
| I just checked and Request::root(); does return http://www.example.com in my case, no matter which route I'm on. You can then do the following to strip off the http:// part: if (starts_with(Request::root(), 'http://')){$domain = substr (Request::root(), 7); // $domain is now 'www.example.com'} You may want to double check or post more code (routes.php , controller code, ...) if the problem persists. Another solution is to simply use $_SERVER['SERVER_NAME'] . |
15)可以使用 request 生成变量
在中间中用$request->attributes->add生成变量 然后再控制器$request->input('openid');获取就行了
16)模板 blade 视图中 view 使用 request
Request::get('searchtype') (或者Request::input('searchtype')) (或者 request()->input('searchtype'))
{{ Request::input('search')?Request::input('search'):'输入关键字' }}
17) laravel 获取当前url, 路由
2018年02月23日 18:10:53 cominglately 阅读数:3450
当前的url \Request::getRequestUri()
当前route \Request::route()->getName()
$request->except('input_name');
$request->only('input_name');
$request->all();
[L5]如何在中间件获取url参数
由VICTOR_ARCAS 发表于2年前
我有这些路线
Route::group(['prefix' => '{id}/questions', 'middleware' => 'groupExists'], function(){Route::post( '/', 'QuestionsController@create' );Route::post( '/searches', 'QuestionsController@search' );
});
我有这个中间件拦截他们
class GroupExists implements Middleware{ public function handle($request, Closure $next) {
$group = Group::find($request->input('id')); // This is null$groupNotFound = !$group;if( $groupNotFound )
...
$ request-> input('id')不起作用。如何获取路由url的/ {id} /参数?
注意:id参数是“group”的id。这些“问题”与“团体”有关。图像的Route ::组嵌套在另一个Route :: group中。该路由是正确的,因为它返回,如果我把一个返回“foo”在其中。
| I just checked and Request::root(); does return http://www.example.com in my case, no matter which route I'm on. You can then do the following to strip off the http:// part: if (starts_with(Request::root(), 'http://')){$domain = substr (Request::root(), 7); // $domain is now 'www.example.com'} You may want to double check or post more code (routes.php , controller code, ...) if the problem persists. Another solution is to simply use $_SERVER['SERVER_NAME'] . |