Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cakephp Blog Tutorial error

Tags:

cakephp

I am new to cakephp. I followed this http://book.cakephp.org/2.0/en/tutorials-and-examples/blog/part-two.html tutorial, everything is working fine apart from the "edit method" when I click the edit link it gives following warning message and does not edit.

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] - 
like image 260
user1124825 Avatar asked Dec 19 '22 22:12

user1124825


1 Answers

To clear this up a little further, it's the

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

call causing the problem, as CakeRequest::is() has only been able to take an array as of CakePHP 2.4.0, earlier versions are expecting a string.

I'm not sure whether one should expect the tutorials to be compatible to older versions, however, for the sake of completeness, in older versions you'd have to use multiple calls to CakeRequest::is():

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

See also

  • http://api.cakephp.org/2.3/class-CakeRequest.html#_is
  • http://api.cakephp.org/2.4/class-CakeRequest.html#_is
like image 78
ndm Avatar answered Jan 12 '23 02:01

ndm