我使用的是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中所有操作的文档。
答案 0 :(得分:0)
您不需要像这样以雄辩的方式定义表格。如果您遵循名称约定,您的模型将自行完成,或者您可以通过以下方式在模型中设置表名:
class YourModelName extends Model
{
protected $table = 'your_table_name';
}
现在查询如下:
function searchByName($word) {
return Capsule::where('name', 'LIKE', '%'.$word.'%')->get();
}
这将返回多个与字符串匹配的值。