Laravel - Model - Eloquent
在创建Laravel之后, 并没有Model文件夹.
创建一个Model
方法一: 通过命令方式创建
php artisan make:model Member #默认创建的文件位置 app/Member.php
php artisan make:model Http/Member #指定路径目录创建 app/Http/Member
php artisan make:model -m Test #创建一个可迁移的表, 会创建两个文件 app/Test.php database/migrations/文件.php
php artisan migrate #运行所有未运行过的迁移
PS: 若需要删除就找到文件直接删除. 通过php artisan help make:model 未找到命令删除方法.
方法二: 手动创建
<?php
# 创建于app/Member
namespace App;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
protected $table = 'user'; #表名
public function lists()
{
return self::all(); #获取所有的数据
}
}
Model常用属性
protected $table # 设置当前模块的表
关于可迁移的模型
默认字段, 自增长,主键的ID 与时间字段
更多设置 -> \vendor\laravel\framework\src\Illuminate\Database\Schema\Blueprint.php
#文件位置 database/migrations/{time}_create_tests_table.php
public function up()
{
Schema::create('tests', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 20)->comment('用户名');
$table->string('password');
$table->timestamps();
});
}
增删改查
#文件 app/Test.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Test extends Model
{
protected $fillable = [
'name', 'password', #定义可入库的字段
];
}
#文件 app/Http/Controllers/Test.php
<?php
namespace App\Http\Controllers;
use App\Test as M;
class TestController extends Controller
{
/**
* 数据入库
*/
public function add(M $model)
{
$data = ['name' => '测试用户名', 'password' => '123123'];
$model->fill($data)->save();
$lastid = $model->id;
echo $lastid;
}
/**
* 数据更新
*/
public function renew(M $model)
{
$data = ['name' => '更新用户名', 'password' => '123123'];
$result = $model->where(['id' => 1])->update($data);
var_dump($result);
}
/**
* 数据查询
*/
public function inquire(M $model)
{
$info = $model->find(1);
#var_dump($info->toArray());
$list = $model::paginate(5);
#var_dump($list->toArray());
}
/**
* 数据删除
*/
public function del(M $model)
{
$result = $model->where(['id' => 2])->delete();
var_dump($result);
}
}