如何在执行MYSQL查询之前检查条件(Laravel 5)

时间:2015-03-24 01:37:20

标签: php mysql mysqli laravel-5

我想检查是否为空$i$search

我收到了错误消息

Object of class Illuminate\Database\Query\Builder could not be converted to string

当我使用此功能时

static function getListUserGroup($id = "", $search = "", $paginate = NULL)
{
    $sql = "";
    if (!empty($id))
    {
        $sql.= "->where('id', {$id})";
    }

    if (!empty($search))
    {
        $sql.= "->where('name', 'LIKE', {$search})";
    }

    if (!is_null($paginate) && !empty($paginate))
    {
        $sql.= "->paginate({$paginate})";
    }

    $results =  DB::table('core_user_roles').$sql;

    return $results;
}

1 个答案:

答案 0 :(得分:1)

你真的不能把Laravel的数据库函数变成字符串,并希望它能像那样工作。 Laravel的DB和Eloquent函数是可链接的,所以你可以这样做:。

static function getListUserGroup($id = "", $search = "", $paginate = NULL)
{
    $query = DB::table('core_user_roles');

    if($id) {
        // a slightly cooler syntax for simple wheres
        $query->whereId($id);
    }

    if($search) {
        $query->where('name', 'LIKE', $search);
    }

    if($paginate) {
        $query->paginate($paginate);
    }

    return $query;
}