-
Notifications
You must be signed in to change notification settings - Fork 2
ORM
何延龙 edited this page Apr 17, 2019
·
3 revisions
use Vanilla\Database\Model;
class User extends Model
{
public $tableName = 'users';
}
$user = new User();
$user->name = 'google';
$user->email = 'google#gmail.com';
$user->save();
//// INSERT INTO users (`name`, `email`) VALUES('google', 'google#gmail.com')
// Get first matched record
User::where("name = ?", "vanilla")->first()
//// SELECT * FROM users WHERE name = 'vanilla' limit 1;
// Get all matched records
User::where("name = ?", "vanilla")->find()
//// SELECT * FROM users WHERE name = 'vanilla';
// <>
User::where("name <> ?", "vanilla")->find()
// IN
User::where("name in (?)", ["vanilla", "vanilla 2"])->find()
// LIKE
User::where("name LIKE ?", "%van%")->find()
// AND
User::where("name = ? AND age >= ?", "vanilla", "22")->find()
// Time
User::where("updated_at > ?", lastWeek)->find()
// BETWEEN
User::where("created_at BETWEEN ? AND ?", lastWeek, today)->find()
If you only want to update changed Fields, you could use Update
, Updates
// Update single attribute
User::update("name", "hello");
//// UPDATE users SET name='hello';
// Update single attribute with combined conditions
User::where("active = ?", true)->update("name", "hello");
//// UPDATE users SET name='hello' WHERE active=true;
// Update single attribute with user object
$user = User::where("name = ? and id = ?", "vanilla", 1)->first()
$user->name = 'hello';
$user->save();
//// UPDATE users SET name='hello' WHERE id = 1;