Laravel 4 Laravel 4查询给定错误

Laravel 4 Laravel 4查询给定错误,laravel-4,Laravel 4,我在laravel中有一个查询,当它在表中找到数据时运行得非常好,但当它没有找到匹配的数据时会给出错误,当它没有在表中找到数据时,如何使查询不给出错误 DB::select(DB::raw('SELECT * FROM time WHERE p_day = dayname(CURDATE()) AND CURTIME() BETWEEN p_start AND p_end'))[0]; 这是因为DB::select返回的数组中没有项。在使用索引操作符访问它之前,您必须检查它

我在laravel中有一个查询,当它在表中找到数据时运行得非常好,但当它没有找到匹配的数据时会给出错误,当它没有在表中找到数据时,如何使查询不给出错误

DB::select(DB::raw('SELECT * FROM time 
    WHERE p_day = dayname(CURDATE()) 
    AND CURTIME() BETWEEN p_start AND p_end'))[0];

这是因为DB::select返回的数组中没有项。在使用索引操作符访问它之前,您必须检查它的长度

试一试这样的东西:

$results = DB::select(DB::raw('SELECT * FROM time 
    WHERE p_day = dayname(CURDATE()) 
    AND CURTIME() BETWEEN p_start AND p_end'));

if (!empty($results))  // or: if (count($results) > 0)
{
    // Stuff was returned
    $desiredResult = $results[0];
    // Your hork here
}
else
{
    // what you need to to if nothing is returned (no matches for your query)...
}

这是因为
DB::select
返回的数组中没有任何项。在使用索引运算符访问它之前,您必须先检查它的长度。您能给我举个例子吗?请看我的答案,希望对您有所帮助