zie*_*456 4 php drupal drupal-8
我已经创建了一个这样的自定义块:
class HelloBlock extends BlockBase implements BlockPluginInterface{
/**
* {@inheritdoc}
*/
public function build() {
$config = $this->getConfiguration();
$result = db_query('SELECT * FROM {test}');
return array(
'#theme' => 'world',
'#test' => $result
);
}
}
Run Code Online (Sandbox Code Playgroud)
我现在想以编程方式从URL获取一些参数.
例如:
如果URL是http://localhost/drup/hello/5569我想要获取5569我的模块内的值.
我试过arg(1),drupal_get_query_parameters()但我收到此错误消息:
Call to undefined function `Drupal\hello\Plugin\Block\arg()`
Run Code Online (Sandbox Code Playgroud)
和
Call to undefined function `Drupal\hello\Plugin\Block\drupal_get_query_parameters()`
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得参数?
B.l*_*man 10
我曾经从URL获取参数值(localhost/check/myform?mob = 89886665)
$param = \Drupal::request()->query->all();
Run Code Online (Sandbox Code Playgroud)
并在我的选择查询中应用
$query = \Drupal::database()->select('profile_register', 'p1');
$query->fields('p1');
$query->condition('p1.mobileno', $edituseprof);
$query->condition('publishstatus', 'no');
$result = $query->execute()->fetchAll();
Run Code Online (Sandbox Code Playgroud)
但是在多个参数值上,我现在成功了(例如: http ://10.163.14.41/multisite/check/myform?mob=89886665& id=1 )
$query = \Drupal::database()->select('profile_register', 'p1');
$query->fields('p1');
$query->condition('p1.mobileno', $edituseprof['mob']);
$query->condition('p1.ids', $edituseprof['id']);
$query->condition('publishstatus', 'no');
$result = $query->execute()->fetchAll();
Run Code Online (Sandbox Code Playgroud)
小智 8
用途\Drupal\Core\Routing;:
$parameters = \Drupal::routeMatch()->getParameters();
Run Code Online (Sandbox Code Playgroud)
在drupal 8中不推荐使用arg(),但是我们可以像在drupal 7和6中获得arg()函数一样的值
$path = \Drupal::request()->getpathInfo();
$arg = explode('/',$path);
print_r($arg); exit();
Run Code Online (Sandbox Code Playgroud)
输出将是url中除basepath或(baseurl)以外的参数,
Array
(
[0] =>
[1] => node
[2] => add
)
Run Code Online (Sandbox Code Playgroud)
要从 url 获取查询参数,您可以使用以下命令。例如,如果您有网址,
domainname.com/page?uid=123&num=452
Run Code Online (Sandbox Code Playgroud)
要从url获取“uid” ,请使用..
$uid = \Drupal::request()->query->get('uid');
Run Code Online (Sandbox Code Playgroud)
要从url获取“num” ,请使用..
$num = \Drupal::request()->query->get('num');
Run Code Online (Sandbox Code Playgroud)
$route_match = \Drupal::service('current_route_match');
$abc = $route_match->getParameter('node'); //node is refrence to what you have written in you routing file i.e:
in something.routing.yml
entity.node.somepath:
path: '/some/{node}/path'
Run Code Online (Sandbox Code Playgroud)
我已使用 {node} 作为 arg(1)。我可以使用 *->getParameter('node'); 访问它
希望这会起作用。
| 归档时间: |
|
| 查看次数: |
28908 次 |
| 最近记录: |