Laravel:不能使用`Input :: get(' foobar')`作为动作的默认参数值

时间:2014-09-04 05:30:44

标签: php laravel laravel-4

我正在尝试在我的控制器中执行以下操作:

public function moveMessagesToArchive( $message_ids = Input::get('message_ids') )
{
    $json = json_encode( $message_ids);
    echo $json;
}

它不断抛出以下错误:

  

语法错误,意外'(',期待')'

在功能签名处。造成这个问题的原因是什么?

更新

虽然,我等待我写下以下工作的原因:

public function moveMessagesToArchive( $message_ids = array() )
{
    $ids =  array();

    if ( ( count($message_ids) !== 0 ) && is_array($message_ids) ) {
        $ids = $message_ids;
    } else if ( Input::get('message_ids') ) {
        $ids = Input::get('message_ids');
    } else {
        return false;
    }

    $json = json_encode( $ids );
    echo $json;
}

2 个答案:

答案 0 :(得分:1)

在PHP中是不可能的。根据文件

The default value must be a constant expression, not (for example) a variable, a class member or a function call.

Reference Example 4

答案 1 :(得分:0)

你要做的不是,而且从来没有得到php的支持。

与Laravel没什么关系。