Laravel:日志:存储库中的信息不打印输入

时间:2015-07-25 15:17:20

标签: laravel-4

Laravel的新手,因此想要了解这一点。

是不允许Log :: info()打印一些信息? 它静静地死去,因此想知道这是否是我尚未学习的Laravel规则..

我的HTML表单属于这种类型:

<form>
   <input type="hidden" name="val[name]">
   <input type="hidden" name="val[address]">
</form>

我的Ajax函数只是创建一个formData并将其发送到后端。

$.ajax({
            url : baseUrl + 'update/' + id,
            type : 'POST',
            data : new FormData(this),
            contentType : false,
            cache : false,
            processData : false,
            success : function(
            }
        });

我的控制器 打印/ 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错误日志中看到任何错误。

1 个答案:

答案 0 :(得分:0)

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

让我们来看看您的代码:

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崩溃,因为第二个参数的类型无效。它需要一个数组,但它得到了字符串。