Elequent / Illuminate Laravel数据库LIKE操作无效

时间:2017-08-01 15:41:16

标签: laravel

我使用的是Laravel的Illuminate数据库管理器,除了现在使用LIKE操作外,它的效果非常好。

我尝试过这些选项但却一无所获:

function initConnection()
{
    $capsule = new Capsule;

    $capsule->addConnection([
        'driver'    => 'mysql',
        'host'      => $this->config['host'],
        'database'  => $this->config['database-name'],
        'username'  => $this->config['username'],
        'password'  => $this->config['password'],
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => ''
    ]);

    $capsule->setAsGlobal();
}

在初始化之后我尝试了:

function searchByName($word) 
{
    return Capsule::table($table)
        ->get()
        ->where('name', 'LIKE', '%'.$word.'%')
        ->first();
}

echo searchByName('John');

我也试过这个选项:

Capsule::table('table_name')
    ->select('SELECT * FROM table_name WHERE table_name.name LIKE "%John%"');

这也失败了。

我无法找到使用Laravel中所有操作的文档。

1 个答案:

答案 0 :(得分:0)

您不需要像这样以雄辩的方式定义表格。如果您遵循名称约定,您的模型将自行完成,或者您可以通过以下方式在模型中设置表名:

class YourModelName extends Model
{
    protected $table = 'your_table_name';
}

现在查询如下:

function searchByName($word) {
     return Capsule::where('name', 'LIKE', '%'.$word.'%')->get();
}

这将返回多个与字符串匹配的值。