添加数据
用AR模式进行数据保存
public function createTest() {// 实例化模型, 将数据表和模型类映射起来$category = new Category();// 给属性赋值, 将字段与属性映射起来$category -> cat_name = "电脑";$category -> parent_id = 0;$category -> cat_desc = "笔记本, 台式机, 一体机";$category -> sort_order = 50;$category -> unit = 10000;$category -> is_show = 1;// save() 将模型保存到数据库中(根据映射关系), 返回Bool值if ($category -> save()) {echo "保存成功";}}
通过 Request 类进行数据保存
Request 相关的实例方法
$request -> all(); // 获取该request的所有输入与文件
$request -> input('item'); // 在request中检索指定的输入项
$request -> only(['key1', 'key2', ...]); // 获取request中所有指定key对应值, 以数组返回
$request -> except(['key1', 'key2', ...]); // 获取request中除了指定key对应值外的所有值, 以数组返回
$request -> has('key'); // 判断该request中是否包含指定key对应的值
$request -> get('key'); // 获取指定key对应的值
视图的表单代码
<form action="requestTest" method="post"><br>
分类名称 <input type="text" name="cat_name"><br>
所属分类 <input type="text" name="parent_id"><br>
分类描述 <input type="text" name="cat_desc"><br>
排序权重 <input type="text" name="sort_order"><br>
品类数量 <input type="text" name="unit"><br>
是否展示 <input type="text" name="is_show"><br>
<input type="submit" value="提交">
{{csrf_field()}}
</form>
控制器的代码
/**
* Laravel的控制器, 默认引入了 Illuminate\Http\Request;
* Request类: 可以获取所有的请求数据
* 要使用 Request, 必须将其作为形参, 在方法声明中引入
*/
public function requestTest(Request $request) {
// 以关联数组的形式返回请求中所有的输入
$allInput = $request -> all();
var_dump($allInput);
echo "------------ Separator ----------";
/**
* create() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明,
* 1. 创建调用类(Category)的实例对象
* 2. 保存模型数据 (根据数组内容, 为模型属性设置对应的值)
* 3. 返回该实例对象
*/
$category = Category::create($allInput);
var_dump($category);
}
<a name="5c312d75"></a>
## 查询数据
<a name="Hg6NN"></a>
### find() 的使用
/**
- find() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明,
- 根据主键查找对应的模型, 参数为主键值, 返回调用类(Category)的实例对象 */ // $data = Category::find(8); // var_dump($data);
// AR模式的写法, 与上述两行代码实现效果一样 $category = new Category(); $data = $category -> find(8);
// 将模型的属性转换成 关联数组 $result = $data -> attributesToArray(); dd($result);
<a name="gcdgt"></a>
### get() 的使用
```php
/**
* get() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明,
* 查询所有数据, 类似于 SELECT *
* 以数组形式返回表内所有数据, 每个元素都是调用类(Category)的实例对象
*/
$results = Category::get();
foreach ($results as $key => $value) {
$result = $value -> attributesToArray();
var_dump($result);
}
结合 where 的使用
/**
* where() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明,
* 为查询语句添加 where 条件, 返回调用类或对象
* get() 可以与其他的辅助查询方法联用
*/
$results = Category::where('cat_id', '<', '3') -> get();
dd($results -> toArray());
all() 的使用
/**
* all() 方法 在Illuminate\Database\Eloquent\Model 中查到相关说明,
* 从数据库中获取该表所有的模型
* all() 无法与其他的辅助查询方法联用, 仅能直接获取所有模型, 无法增加条件限制
*/
$results = Category::all() -> toArray();
dd($results);
更新数据
AR模式进行数据更新
$data = Category::find(4);
// 修改字段值
$data -> cat_desc = "男士服装专题";
// 保存到数据库
$result = $data -> save();
dd($result);
update() 的使用
/**
* update() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明
* 更新数据库中该表的某条记录, 返回受影响的记录数
* 参数以数组形式传递, key 对应要更新的字段, value 对应该字段更新后的值, 多个更新以逗号隔开
*/
$result = Category::where('cat_id', '5') -> update([
'cat_desc' => '男女工装衬衫. 休闲衬衫',
'unit' => 1000,
]);
dd($result);
删除数据
// 使用AR模式进行数据删除
$data = Category::find(18);
/**
* delete() 方法 在Illuminate\Database\Eloquent\Builder 中查到相关说明
* 将数据库中该表的某条记录删除
* 返回删除结果, 成功为 true
*/
if ($data -> delete()) {
echo "删除成功";
}
