1

これは私のコントローラーです(明らかに未完成ですが、「魔法をかける」には、最初に実行する必要があります):

    public function add($customer_id, $question_set_id, $order_value) {

        $customer_id = $this->params['url']['customer_id'];
        $question_set_id = $this->params['url']['question_set_id'];
        $order_value = $this->params['url']['order_value'];

        $possible_answer_model = ClassRegistry::init('PossibleAnswer');
        $question_model = ClassRegistry::init('Question');
        $order_model = ClassRegistry::init('Order');

        $order = $order_model -> find('first', array(
        'Order.question_set_id' => $question_set_id,
        'Order.value' => $order_value));

        $question = $question_model -> find('first', array(
        'Question.id' => $order['Order']['question_id']));

        $this -> set('question', $question);

        if ($question['Question']['kind'] != "o") {
            $this -> set('possible_answers', $possible_answer_model -> find('all', array(
            'PossibleAnswer.question_id' => $question['Question']['id'])));
        }
.
.
.

私が得るものは次のとおりです。

警告 (2): AnswersController::add() の引数 1 がありません [APP\Controller\AnswersController.php、10 行目]

警告 (2): AnswersController::add() の引数 2 がありません [APP\Controller\AnswersController.php、10 行目]

警告 (2): AnswersController::add() の引数 3 がありません [APP\Controller\AnswersController.php、10 行目]

私のリンクは次のとおりです。

/answers/add/?customer_id=1&question_set_id=1&order_value=1

4

3 に答える 3

3

リンクは

/answers/add/1/1/1

にマッピングするために

AnswersController::add($customer_id, $question_set_id, $order_value)

$this->params通常のクエリ パラメータは、コントローラ内からアクセスする必要があり、引数としてアクションに渡されません。

于 2012-07-11T06:21:26.600 に答える
0
 public function add($customer_id=null, $question_set_id=null, $order_value=null) {
  ....
 }

おそらく、必要なときに必要な引数を渡していません。上記を実行するだけで、必要ありません。

于 2012-07-11T06:15:56.687 に答える
0

カスタムルートを使用していますが、これで解決します。

Router::connect('/me/edit/:id', array('controller' => 'users', 'action' => 'edit'),
        array('pass' => array('id'), 'id' => '[0-9]+')
    );

https://stackoverflow.com/a/17989140/1424473の @david-yell に感謝します。

于 2016-09-23T20:24:04.947 に答える