Laravel 4 Laravel:Log:info存储库中未打印输入值

Laravel 4 Laravel:Log:info存储库中未打印输入值,laravel-4,Laravel 4,拉威尔是新手,因此我想了解这一点 是否不允许Log::info()打印某些信息? 它静静地死去,因此想知道这是否是我还没有学会的拉威尔法则 我的HTML表单是这样的: <form> <input type="hidden" name="val[name]"> <input type="hidden" name="val[address]"> </form> 我的控制器 打印/Input::get('val'),无任何问题 我的存储库

拉威尔是新手,因此我想了解这一点

是否不允许Log::info()打印某些信息? 它静静地死去,因此想知道这是否是我还没有学会的拉威尔法则

我的HTML表单是这样的:

<form>
   <input type="hidden" name="val[name]">
   <input type="hidden" name="val[address]">
</form>
我的控制器 打印/Input::get('val'),无任何问题

我的存储库

public function update user($id, $val)
{
    Log::info('reached forward() in the repository');

    $post = $this->findById($postID);
    Log::info('Going to print the values now');
    Log::info('Val : ', $val);
    //Log::info('Post-ID : ', $id);
    Log::info('-----------------');

    Log::info('Extracting the VAL to regular variables');


    $expected = [
        'name' => '',
        'address' => []
    ];

    /**
     * @var $name
     * @var $address
     */
    extract($val = array_merge($expected, $val)); // create $name & $address

    Log::info('After extraction'); // Gets printed

    if($name == 'Tim')
    {
        Log::info('Name entered is in fact Tim'); // This does get printed
    }
    Log::info('Name sent is : ', $name); // **This is never printed**
    Log::info('Printed Name'); // **This is never printed**
}
是我做错了什么,还是Laravel的日志功能不允许打印它们?

顺便说一句,我在laravel.log或php错误日志中没有看到任何错误。

不,关于日志记录的工作方式没有特殊规则-它记录作为第一个参数传递的字符串+可能作为第二个参数传递的上下文数组

让我们看看您的代码:

Log::info('Name entered is in fact Tim'); // This does get printed
Log::info('Name sent is : ', $name); // **This is never printed**
Log::info('Printed Name'); // **This is never printed**
打印第一行,因为字符串被传递给info()方法。 第二个调用无效,因为您正在传递2个字符串参数。如果要将发送的名称连接为:和$Name,则需要使用点而不是逗号:

Log::info('Name sent is : ' . $name); // Now this will get printed

第三行未打印的原因是第二行由于第二个参数的类型无效而导致PHP崩溃。它需要一个数组,但得到字符串。

谢谢jedrez!修好了!我在php错误日志或laravel.log中没有看到错误,为什么会这样?不确定,但这不是我第一次看到php在类型不匹配的情况下悄无声息地死去。
Log::info('Name sent is : ' . $name); // Now this will get printed