4

私はcakephpが初めてです。私はこのhttp://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.htmlチュートリアルに従いました。編集リンクをクリックすると、「編集方法」以外はすべて正常に機能します。次の警告メッセージを表示し、編集しません。

Warning (2): strtolower() expects parameter 1 to be string, array given [CORE/Cake/Network/CakeRequest.php, line 471]
Code Context
$type = array(
    (int) 0 => 'post',
    (int) 1 => 'put'
)
$this = object(CakeRequest) {
    params => array(
        'plugin' => null,
        'controller' => 'posts',
        'action' => 'edit',
        'named' => array([maximum depth reached]),
        'pass' => array(
            [maximum depth reached]
        )
    )
    data => array()
    query => array()
    url => 'posts/edit/2'
    base => '/cake_2_0'
    webroot => '/cake_2_0/'
    here => '/cake_2_0/posts/edit/2'
}
strtolower - [internal], line ??
CakeRequest::is() - CORE/Cake/Network/CakeRequest.php, line 471
PostsController::edit() - APP/Controller/PostsController.php, line 48
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 485
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 186
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 161
[main] - 
4

1 に答える 1

11

これをもう少し明確にするために、それは

$this->request->is(array('post', 'put'))

CakePHP 2.4.0 の時点でしか取得できなかったため、以前のバージョンでCakeRequest::is()は.arraystring

チュートリアルが古いバージョンと互換性があると期待すべきかどうかはわかりませんが、完全を期すために、古いバージョンでは次の呼び出しを複数回使用する必要がありますCakeRequest::is()

$this->request->is('post') || $this->request->is('put')

こちらもご覧ください

于 2013-10-31T18:56:56.333 に答える