2016-09-25 8 views
1

私はhook_views_pre_buildフックを使っていくつかのビューをオーバーライドしようとしています。ドキュメント以下: Drupal 8 hook_views_pre_buildいいえ

<?php 
//... some code that works 
// and my hook: 
function mymodule_views_pre_build(&$view) { 
    var_dump("hello"); die(); 
} 
をそして、それはまったく効果がありません: https://api.drupal.org/api/drupal/core%21modules%21views%21views.api.php/function/hook_views_pre_build/8.1.x

私のモジュールは、 "のmymodule" という名前で、私が持っています。他のフックを試してみると、例えば "mymodule_preprocess_page"はOKです。

私は毎回 "drush cr"を実行しますが、 "mymodule_views_pre_exec"として他のフックを試してみましたが効果はありません。 Drupal 8.1はhook_views_XXXを実行していないようです

誰でもこの問題を解決するのに役立ちますか?すべての

答えて

2

まず、DOCは言う:

hook_views_pre_build(ViewExecutable $ビュー)

ViewExecutable $ビューの代わりに、& $ビューを試してみてください?

+0

+1:関数の宣言された引数型が正しくない場合、 'call_user_func_array($ function、$ args)'はD8で暗黙的に失敗するようです。しかし、ファイルの一番上に 'Drupal \ views \ ViewExecutable;'を使うか、関数宣言で完全な名前空間のクラスを指定する必要があります。そうしないと、クラスは '\ ViewExecutable'に解決され、正しくないでしょう。 –