当前位置: 首页>>代码示例>>PHP>>正文


PHP Router::reverse方法代码示例

本文整理汇总了PHP中Router::reverse方法的典型用法代码示例。如果您正苦于以下问题:PHP Router::reverse方法的具体用法?PHP Router::reverse怎么用?PHP Router::reverse使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Router的用法示例。


在下文中一共展示了Router::reverse方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parse

 /**
  * Parses a string url into an array. Parsed urls will result in an automatic
  * redirection
  *
  * @param string $url The url to parse
  * @return boolean False on failure
  */
 public function parse($url)
 {
     $params = parent::parse($url);
     if (!$params) {
         return false;
     }
     if (!$this->response) {
         $this->response = new CakeResponse();
     }
     $redirect = $this->redirect;
     if (count($this->redirect) == 1 && !isset($this->redirect['controller'])) {
         $redirect = $this->redirect[0];
     }
     if (isset($this->options['persist']) && is_array($redirect)) {
         $redirect += array('named' => $params['named'], 'pass' => $params['pass'], 'url' => array());
         $redirect = Router::reverse($redirect);
     }
     $status = 301;
     if (isset($this->options['status']) && ($this->options['status'] >= 300 && $this->options['status'] < 400)) {
         $status = $this->options['status'];
     }
     $this->response->header(array('Location' => Router::url($redirect, true)));
     $this->response->statusCode($status);
     $this->response->send();
     $this->_stop();
 }
开发者ID:MrGrigorev,项目名称:reserva-de-salas,代码行数:33,代码来源:RedirectRoute.php

示例2: requestAction

 /**
  * Calls a controller's method from any location. Can be used to connect controllers together
  * or tie plugins into a main application. requestAction can be used to return rendered views
  * or fetch the return value from controller actions.
  *
  * @param mixed $url String or array-based url.
  * @param array $extra if array includes the key "return" it sets the AutoRender to true.
  * @return mixed Boolean true or false on success/failure, or contents
  *    of rendered action if 'return' is set in $extra.
  */
 public function requestAction($url, $extra = array())
 {
     if (empty($url)) {
         return false;
     }
     App::uses('Dispatcher', 'Routing');
     if (in_array('return', $extra, true)) {
         $extra = array_merge($extra, array('return' => 0, 'autoRender' => 1));
     }
     if (is_array($url) && !isset($extra['url'])) {
         $extra['url'] = array();
     }
     $extra = array_merge(array('autoRender' => 0, 'return' => 1, 'bare' => 1, 'requested' => 1), $extra);
     if (is_string($url)) {
         $request = new CakeRequest($url);
     } elseif (is_array($url)) {
         $params = $url + array('pass' => array(), 'named' => array(), 'base' => false);
         $params = array_merge($params, $extra);
         $request = new CakeRequest(Router::reverse($params), false);
         if (isset($params['data'])) {
             $request->data = $params['data'];
         }
     }
     $dispatcher = new Dispatcher();
     return $dispatcher->dispatch($request, new CakeResponse(), $extra);
 }
开发者ID:Nervie,项目名称:Beta,代码行数:36,代码来源:Object.php

示例3: testRoutableContentTypes

 public function testRoutableContentTypes()
 {
     $Type = ClassRegistry::init('Type');
     $type = $Type->create(array('title' => 'Press Release', 'alias' => 'press-release', 'description' => ''));
     $Type->save($type);
     $type = $Type->findByAlias('press-release');
     CroogoRouter::routableContentTypes();
     $params = array('url' => array(), 'controller' => 'nodes', 'action' => 'index', 'type' => 'press-release');
     $result = Router::reverse($params);
     $this->assertEquals('/nodes/index/type:press-release', $result);
     $type['Type']['params'] = 'routes=1';
     $Type->save($type);
     CroogoRouter::routableContentTypes();
     $result = Router::reverse($params);
     $this->assertEquals('/press-release', $result);
 }
开发者ID:romaing,项目名称:croogo-rg,代码行数:16,代码来源:CroogoRouterTest.php

示例4: testReverseWithExtension

 /**
  * Test that extensions work with Router::reverse()
  *
  * @return void
  */
 public function testReverseWithExtension()
 {
     Router::parseExtensions('json');
     $request = new CakeRequest('/posts/view/1.json');
     $request->addParams(array('controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array(), 'ext' => 'json'));
     $request->query = array();
     $result = Router::reverse($request);
     $expected = '/posts/view/1.json';
     $this->assertEquals($expected, $result);
 }
开发者ID:nabeelio,项目名称:CakePHP-Base,代码行数:15,代码来源:RouterTest.php

示例5: requestAction

 /**
  * Calls a controller's method from any location. Can be used to connect controllers together
  * or tie plugins into a main application. requestAction can be used to return rendered views
  * or fetch the return value from controller actions.
  *
  * Under the hood this method uses Router::reverse() to convert the $url parameter into a string
  * URL. You should use URL formats that are compatible with Router::reverse()
  *
  * #### Passing POST and GET data
  *
  * POST and GET data can be simulated in requestAction. Use `$extra['url']` for
  * GET data. The `$extra['data']` parameter allows POST data simulation.
  *
  * @param string|array $url String or array-based URL. Unlike other URL arrays in CakePHP, this
  *    URL will not automatically handle passed and named arguments in the $url parameter.
  * @param array $extra if array includes the key "return" it sets the AutoRender to true. Can
  *    also be used to submit GET/POST data, and named/passed arguments.
  * @return mixed Boolean true or false on success/failure, or contents
  *    of rendered action if 'return' is set in $extra.
  */
 public function requestAction($url, $extra = array())
 {
     if (empty($url)) {
         return false;
     }
     if (($index = array_search('return', $extra)) !== false) {
         $extra['return'] = 0;
         $extra['autoRender'] = 1;
         unset($extra[$index]);
     }
     $arrayUrl = is_array($url);
     if ($arrayUrl && !isset($extra['url'])) {
         $extra['url'] = array();
     }
     if ($arrayUrl && !isset($extra['data'])) {
         $extra['data'] = array();
     }
     $extra += array('autoRender' => 0, 'return' => 1, 'bare' => 1, 'requested' => 1);
     $data = isset($extra['data']) ? $extra['data'] : null;
     unset($extra['data']);
     if (is_string($url) && strpos($url, Router::fullBaseUrl()) === 0) {
         $url = Router::normalize(str_replace(Router::fullBaseUrl(), '', $url));
     }
     if (is_string($url)) {
         $request = new CakeRequest($url);
     } elseif (is_array($url)) {
         $params = $url + array('pass' => array(), 'named' => array(), 'base' => false);
         $params = $extra + $params;
         $request = new CakeRequest(Router::reverse($params));
     }
     if (isset($data)) {
         $request->data = $data;
     }
     $dispatcher = new Dispatcher();
     $result = $dispatcher->dispatch($request, new CakeResponse(), $extra);
     Router::popRequest();
     return $result;
 }
开发者ID:agashish,项目名称:test_new,代码行数:58,代码来源:Object.php

示例6: __extractParams

 /**
  * Sets the params when $url is passed as an array to Object::requestAction();
  * Merges the $url and $additionalParams and creates a string url.
  *
  * @param array $url Array or request parameters
  * @param array $additionalParams Array of additional parameters.
  * @return string $url The generated url string.
  * @access private
  */
 function __extractParams($url, $additionalParams = array())
 {
     $defaults = array('pass' => array(), 'named' => array(), 'form' => array());
     $params = array_merge($defaults, $url, $additionalParams);
     $this->params = $params;
     $params += array('base' => false, 'url' => array());
     return ltrim(Router::reverse($params), '/');
 }
开发者ID:sathishkumarb,项目名称:HVMS,代码行数:17,代码来源:dispatcher.php

示例7: __handlePaginatorArchivable

 /**
  * Removed archived records from paginated lists by default.
  *
  * @param void
  * @return void
  */
 private function __handlePaginatorArchivable($object)
 {
     $options = $this->_getPaginatorVars($object, 'is_archived');
     if (!empty($options['schema']['is_archived'])) {
         $this->redirect(Router::reverse($this->request->params + array('filter' => 'archived:0', 'url' => null)));
     }
 }
开发者ID:ajayphp,项目名称:Zuha,代码行数:13,代码来源:AppController.php

示例8: startup

 /**
  * Main execution method.  Handles redirecting of invalid users, and processing
  * of login form data.
  *
  * @param Controller $controller A reference to the instantiating controller object
  * @return boolean
  */
 public function startup($controller)
 {
     if ($controller->name == 'CakeError') {
         return true;
     }
     $methods = array_flip(array_map('strtolower', $controller->methods));
     $action = strtolower($controller->request->params['action']);
     $isMissingAction = $controller->scaffold === false && !isset($methods[$action]);
     if ($isMissingAction) {
         return true;
     }
     if (!$this->_setDefaults()) {
         return false;
     }
     $request = $controller->request;
     $url = '';
     if (isset($request->url)) {
         $url = $request->url;
     }
     $url = Router::normalize($url);
     $loginAction = Router::normalize($this->loginAction);
     $allowedActions = $this->allowedActions;
     $isAllowed = $this->allowedActions == array('*') || in_array($action, array_map('strtolower', $allowedActions));
     if ($loginAction != $url && $isAllowed) {
         return true;
     }
     if ($loginAction == $url) {
         if (empty($request->data)) {
             if (!$this->Session->check('Auth.redirect') && !$this->loginRedirect && env('HTTP_REFERER')) {
                 $this->Session->write('Auth.redirect', $controller->referer(null, true));
             }
         }
         return true;
     } else {
         if (!$this->_getUser()) {
             if (!$request->is('ajax')) {
                 $this->flash($this->authError);
                 $this->Session->write('Auth.redirect', Router::reverse($request));
                 $controller->redirect($loginAction);
                 return false;
             } elseif (!empty($this->ajaxLogin)) {
                 $controller->viewPath = 'Elements';
                 echo $controller->render($this->ajaxLogin, $this->RequestHandler->ajaxLayout);
                 $this->_stop();
                 return false;
             } else {
                 $controller->redirect(null, 403);
             }
         }
     }
     if (empty($this->authorize) || $this->isAuthorized($this->user())) {
         return true;
     }
     $this->flash($this->authError);
     $controller->redirect($controller->referer('/'), null, true);
     return false;
 }
开发者ID:piotr0beschel,项目名称:manage-products,代码行数:64,代码来源:AuthComponent.php

示例9: _url

 /**
  * This is used instead of the above on one site who's feature I'm integrating.
  * I only see serializedTemplateRequest() being used in updateTemplateSettings() anyway.. so might be able to just use this.
  * 
  * @param array $data
  * @return string
  */
 public function _url($data)
 {
     if (empty($data['Webpage']['url']) && !empty($data['Webpage']['id'])) {
         $data = array('admin' => false, 'plugin' => 'webpages', 'controller' => 'webpages', 'action' => 'view', $data['Webpage']['id']);
     }
     if ($data['plugin'] == 'webpages' && $data['controller'] == 'webpages' && $data['action'] == 'view') {
         return 'webpages/webpages/view/' . $data[0] . '/';
         // webpages get special treatment
         $url = @Router::reverse($data);
         // seems to be returning the slug URL; possibly because we are now using routes.php
         $url = strpos($url, '/') === 0 ? substr($url, 1) . '/' : $url . '/';
     } elseif ($data['action'] == 'index') {
         $url = $data['plugin'] . '/' . $data['controller'] . '/' . $data['action'] . '*';
     } else {
         unset($data['pass']);
         unset($data['named']);
         $url = @Router::reverse($data) . '/*';
     }
     return $url;
 }
开发者ID:ajayphp,项目名称:Zuha,代码行数:27,代码来源:Webpage.php

示例10: authorize

 /**
  * Authorize user
  * 
  * Accepts a `client_id` and optional `client_secret` query string and, 
  * based on a `response_type`, returns a newly minted `code` or `token`.
  * 
  * @author	Anthony Putignano <anthony@wizehive.com>
  * @since	0.1
  * @return	void
  */
 public function authorize()
 {
     $user_id = $this->Session->read('Auth.' . $this->authorizeActionSettings['userIdKey']);
     if (empty($user_id)) {
         $this->Session->write('Auth.redirect', Router::reverse($this->request));
         return $this->redirect($this->authorizeActionSettings['loginUrl'], 401);
     }
     $client_data = $this->OAuth2->validateAuthorizeRequest();
     if (empty($client_data)) {
         return false;
     }
     $api_key = $client_data['client_id'];
     $post_scope = !empty($this->request->data['scope']) ? $this->request->data['scope'] : null;
     $get_scope = !empty($this->request->query['scope']) ? $this->request->query['scope'] : null;
     $scope = !empty($post_scope) ? $post_scope : $get_scope;
     if (!isset($this->OAuth2Authorization)) {
         $this->loadModel('OAuth2.OAuth2Authorization');
     }
     $existing_authorization = $this->OAuth2Authorization->getExisting($api_key, $user_id, $scope);
     $show_permissions_page = false;
     if (empty($existing_authorization) && $this->request->is('get')) {
         $show_permissions_page = true;
     }
     $proceed_with_authorization = false;
     if (!empty($existing_authorization) || $this->request->is('post')) {
         $proceed_with_authorization = true;
     }
     if ($show_permissions_page) {
         $this->set('client', $client_data);
     } elseif ($proceed_with_authorization) {
         $allow = false;
         if (!empty($existing_authorization) || !empty($this->request->data['allow'])) {
             $allow = true;
         }
         $response = $this->OAuth2->handleAuthorizeRequest($allow, $user_id);
         if (empty($response)) {
             return false;
         }
         return $this->redirect($response->getHttpHeader('Location'), $response->getStatusCode());
     }
 }
开发者ID:manzapanza,项目名称:cakephp-api-utils,代码行数:51,代码来源:OAuth2Controller.php

示例11: beforeFilter

 /**
  * beforeFilter
  *
  * @return	void
  */
 public function beforeFilter()
 {
     parent::beforeFilter();
     $isRequestView = $this->request->is('requestview');
     $isUpdate = $this->request->is('update');
     $isAdmin = $this->request->is('admin');
     $isInstall = $this->request->is('install');
     $isMaintenance = $this->request->is('maintenance');
     // 設定されたサイトURLとリクエストされたサイトURLが違う場合は設定されたサイトにリダイレクト
     if ($isAdmin) {
         if ($this->request->is('ssl')) {
             $siteUrl = Configure::read('BcEnv.sslUrl');
         } else {
             $siteUrl = Configure::read('BcEnv.siteUrl');
         }
         if ($siteUrl && siteUrl() != $siteUrl) {
             $this->redirect($siteUrl . preg_replace('/^\\//', '', Router::reverse($this->request, false)));
         }
     }
     // メンテナンス
     if (!empty($this->siteConfigs['maintenance']) && Configure::read('debug') < 1 && !$isMaintenance && !$isAdmin && !BcUtil::isAdminUser()) {
         if (!empty($this->request->params['return']) && !empty($this->request->params['requested'])) {
             return;
         } else {
             $redirectUrl = '/maintenance';
             if ($this->request->params['Site']['alias']) {
                 $redirectUrl = '/' . $this->request->params['Site']['alias'] . $redirectUrl;
             }
             $this->redirect($redirectUrl);
         }
     }
     // セキュリティ設定
     $this->Security->blackHoleCallback = '_blackHoleCallback';
     if (!BC_INSTALLED || $isUpdate) {
         $this->Security->validatePost = false;
     }
     if ($isAdmin) {
         $this->Security->validatePost = false;
         $corePlugins = Configure::read('BcApp.corePlugins');
         if (BC_INSTALLED && (!$this->plugin || in_array($this->plugin, $corePlugins)) && Configure::read('debug') === 0) {
             $this->Security->csrfCheck = true;
         } else {
             $this->Security->csrfCheck = false;
         }
         // SSLリダイレクト設定
         if (Configure::read('BcApp.adminSsl')) {
             $adminSslMethods = array_filter(get_class_methods(get_class($this)), array($this, '_adminSslMethods'));
             if ($adminSslMethods) {
                 $this->Security->requireSecure = $adminSslMethods;
             }
         }
     }
     //$this->Security->validatePost = false;
     // 送信データの文字コードを内部エンコーディングに変換
     $this->__convertEncodingHttpInput();
     // $this->request->query['url'] の調整
     // 環境によって?キーにamp;が付加されてしまうため
     if (isset($this->request->query) && is_array($this->request->query)) {
         foreach ($this->request->query as $key => $val) {
             if (strpos($key, 'amp;') === 0) {
                 $this->request->query[substr($key, 4)] = $val;
                 unset($this->request->query[$key]);
             }
         }
     }
     // コンソールから利用される場合、$isInstall だけでは判定できないので、BC_INSTALLED も判定に入れる
     if (!BC_INSTALLED || $isInstall || $isUpdate) {
         return;
     }
     // Ajax ヘッダー
     if ($this->request->is('ajax')) {
         // キャッシュ対策
         header("Cache-Control: no-cache, must-revalidate");
         header("Cache-Control: post-check=0, pre-check=0", false);
         header("Pragma: no-cache");
     }
     // テーマ内プラグインのテンプレートをテーマに梱包できるようにプラグインパスにテーマのパスを追加
     // ===============================================================================
     // 実際には、プラグインの場合も下記パスがテンプレートの検索対象となっている為不要だが、
     // ビューが存在しない場合に、プラグインテンプレートの正規のパスがエラーメッセージに
     // 表示されてしまうので明示的に指定している。
     // (例)
     // [変更後] app/webroot/theme/demo/blog/news/index.php
     // [正 規] app/plugins/blog/views/theme/demo/blog/news/index.php
     // 但し、CakePHPの仕様としてはテーマ内にプラグインのテンプレートを梱包できる仕様となっていないので
     // 将来的には、blog / mail / feed をプラグインではなくコアへのパッケージングを検討する必要あり。
     // ※ AppView::_pathsも関連している
     // ===============================================================================
     $pluginThemePath = WWW_ROOT . 'theme' . DS . $this->theme . DS;
     $pluginPaths = Configure::read('pluginPaths');
     if ($pluginPaths && !in_array($pluginThemePath, $pluginPaths)) {
         Configure::write('pluginPaths', am(array($pluginThemePath), $pluginPaths));
     }
     // 認証設定
     if (isset($this->BcAuthConfigure)) {
//.........这里部分代码省略.........
开发者ID:baserproject,项目名称:basercms,代码行数:101,代码来源:BcAppController.php

示例12: requestAction

 /**
  * Calls a controller's method from any location. Can be used to connect controllers together
  * or tie plugins into a main application. requestAction can be used to return rendered views
  * or fetch the return value from controller actions.
  *
  * Under the hood this method uses Router::reverse() to convert the $url parameter into a string
  * URL.  You should use URL formats that are compatible with Router::reverse()
  *
  * #### Passing POST and GET data
  *
  * POST and GET data can be simulated in requestAction.  Use `$extra['url']` for
  * GET data.  The `$extra['data']` parameter allows POST data simulation.
  *
  * @param mixed $url String or array-based url.  Unlike other url arrays in CakePHP, this
  *    url will not automatically handle passed and named arguments in the $url parameter.
  * @param array $extra if array includes the key "return" it sets the AutoRender to true.  Can
  *    also be used to submit GET/POST data, and named/passed arguments.
  * @return mixed Boolean true or false on success/failure, or contents
  *    of rendered action if 'return' is set in $extra.
  */
 public function requestAction($url, $extra = array())
 {
     if (empty($url)) {
         return false;
     }
     App::uses('Dispatcher', 'Routing');
     if (($index = array_search('return', $extra)) !== false) {
         $extra['return'] = 0;
         $extra['autoRender'] = 1;
         unset($extra[$index]);
     }
     if (is_array($url) && !isset($extra['url'])) {
         $extra['url'] = array();
     }
     $extra = array_merge(array('autoRender' => 0, 'return' => 1, 'bare' => 1, 'requested' => 1), $extra);
     $data = isset($extra['data']) ? $extra['data'] : null;
     unset($extra['data']);
     if (is_string($url)) {
         $request = new CakeRequest($url);
     } elseif (is_array($url)) {
         $params = $url + array('pass' => array(), 'named' => array(), 'base' => false);
         $params = array_merge($params, $extra);
         $request = new CakeRequest(Router::reverse($params), false);
     }
     if (isset($data)) {
         $request->data = $data;
     }
     $dispatcher = new Dispatcher();
     $result = $dispatcher->dispatch($request, new CakeResponse(), $extra);
     Router::popRequest();
     return $result;
 }
开发者ID:ronaldsalazar23,项目名称:ComercialChiriguano,代码行数:52,代码来源:Object.php

示例13: testRouterReverse

 /**
  * test reversing parameter arrays back into strings.
  *
  * @return void
  */
 public function testRouterReverse()
 {
     $params = array('controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array(), 'url' => array(), 'autoRender' => 1, 'bare' => 1, 'return' => 1, 'requested' => 1, '_Token' => array('key' => 'sekret'));
     $result = Router::reverse($params);
     $this->assertEqual($result, '/posts/view/1');
     $params = array('controller' => 'posts', 'action' => 'index', 'pass' => array(1), 'named' => array('page' => 1, 'sort' => 'Article.title', 'direction' => 'desc'), 'url' => array());
     $result = Router::reverse($params);
     $this->assertEqual($result, '/posts/index/1/page:1/sort:Article.title/direction:desc');
     Router::connect('/:lang/:controller/:action/*', array(), array('lang' => '[a-z]{3}'));
     $params = array('lang' => 'eng', 'controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array(), 'url' => array('url' => 'eng/posts/view/1'));
     $result = Router::reverse($params);
     $this->assertEqual($result, '/eng/posts/view/1');
     $params = array('lang' => 'eng', 'controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array(), 'url' => array('url' => 'eng/posts/view/1', 'foo' => 'bar', 'baz' => 'quu'), 'paging' => array(), 'models' => array());
     $result = Router::reverse($params);
     $this->assertEqual($result, '/eng/posts/view/1?foo=bar&baz=quu');
     $request = new CakeRequest('/eng/posts/view/1');
     $request->addParams(array('lang' => 'eng', 'controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array()));
     $request->query = array('url' => 'eng/posts/view/1', 'test' => 'value');
     $result = Router::reverse($request);
     $expected = '/eng/posts/view/1?test=value';
     $this->assertEquals($expected, $result);
     $params = array('lang' => 'eng', 'controller' => 'posts', 'action' => 'view', 'pass' => array(1), 'named' => array(), 'url' => array('url' => 'eng/posts/view/1'));
     $result = Router::reverse($params, true);
     $this->assertPattern('/^http(s)?:\\/\\//', $result);
 }
开发者ID:Nervie,项目名称:Beta,代码行数:30,代码来源:RouterTest.php

示例14: urlReverse

 /**
  * turn framework-style url (/home/view/4) to routed url (/product/4)
  * @param type $url
  * @param type $params
  * @return type
  */
 function urlReverse($url, $params)
 {
     return $this->url(Router::reverse($url, $params));
 }
开发者ID:emente,项目名称:kataii---kata-framework-2.x,代码行数:10,代码来源:helper.php

示例15: admin_destroy

 function admin_destroy($id)
 {
     if (!empty($id) || $this->Xpagin->isExecuter) {
         if (empty($id) && !empty($this->data['Xpagin']['record'])) {
             $id = $this->data['Xpagin']['record'];
         } else {
             if (empty($id)) {
                 $this->Notifier->error($this->Interpreter->process("[:no_items_selected:]"));
                 $this->redirect($this->referer());
             }
         }
         if ($this->Location->deleteAll(array('id' => $id))) {
             $this->Notifier->success($this->Interpreter->process("[:Location_deleted_successfully:]"));
         } else {
             $this->Notifier->success($this->Interpreter->process("[:an_error_ocurred_on_the_server:]"));
         }
         $this->redirect(Router::reverse(Router::parse($this->referer())));
     } else {
         $this->Notifier->error($this->Interpreter->process("[:specify_a_Location_id_add:]"));
     }
     if (!$this->Xpagin->isExecuter) {
         $referer = Router::parse($this->referer());
         if ($referer['action'] == 'view') {
             $this->redirect(array('action' => 'trash'));
         }
         $this->redirect($this->referer());
     }
 }
开发者ID:roae,项目名称:hello-world,代码行数:28,代码来源:locations_controller.php


注:本文中的Router::reverse方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。