Laravel - 上手实现 - 增删改查

拿到一个框架,除了解框架,还要能实现基本的CURD操作。

添加
1、配置路由,指定添加页面;
// routes/web.php 中增加如下:
// 添加页面、存放路径 Laravel7/resources/views/Users/add.blade.php
// 视图文件默认以 .blade.php 结尾
Route::get(’/add’, function(){
return view(‘Users.add’);
});
2、创建并编辑添加视图页面;

添加
用户名
密码
{{ csrf_field() }} 3、配置路由绑定控制器和方法,用于执行添加操作; // routes/web.php 中增加如下: // post 提交方式、视图层中 form 的 method // doAdd 提交地址、视图层中 form 的 action Route::post('/doAdd', 'UsersController@doAdd'); 4、在控制器接收数据,调用模型层执行添加操作;返回成功或者失败; 控制器中方法:

/**

  • 添加
  • @param Request
  • @return string
    */

public function create(Request $request)
{
// 获取要提交的数据
$data[‘name’] = $request->input(‘name’, ‘’);
$data[‘pwd’] = $request->input(‘pwd’, ‘’);
// 调用模型层方法添加数据
r e s = U s e r s : : a d d O n e ( res = Users::addOne( res=Users::addOne(data);
// 判断是否添加成功
if (!$res) {
// 注意: a 标签的 href 属性是指定的路由
return ‘添加失败!! 跳转至添加页面’;
}
return ‘添加成功!! 跳转至展示页面’;
}
模型层中的方法:

// 注意: 模型层需要指定与模型关联的数据表名
// protected $table = ‘users’;

/**

  • 添加一条数据
  • @param array $data
  • @return booler
    */

public static function addOne(KaTeX parse error: Expected '}', got 'EOF' at end of input: …n self::insert(data);
}
展示
1、配置路由绑定控制器和方法,用于获取要展示的数据;
// routes/web.php 中增加如下:
// 展示数据
Route::get(’/show’, ‘UsersController@show’);
2、在控制器中调用模型层执行查询操作,然后判断是否成功、成功则调用视图层展示数据 、失败则返回失败;
控制器中的方法:

/**

  • 展示
    */

public function show()
{
// 调用模型层中的方法获取数据
r e s = U s e r s : : g e t A l l ( ) ; / / 判 断 是 否 获 取 成 功 i f ( ! res = Users::getAll(); // 判断是否获取成功 if (! res=Users::getAll();//if(!res) {
return ‘数据库暂时没有数据!!’;
}
// 成功、通过 view 方法发送数据到 视图文件
return view(‘Users.show’, [‘res’ => $res]);
}
模型层中的方法:

/**

  • 获取所有的数据
  • @return array
    */

public static function getAll()
{
return self::get();
}
3、编辑视图层文件,通过 foreach 展示数据;

展示
展示 分页展示
@foreach ( $res as $v ) @endforeach
IDNAMEPWDSTATUSLAST LOGIN
{{ $v->id }}{{ $v->name }}{{ $v->pwd }}{{ $v->status }}{{ $v->last }}
分页展示 1、配置路由绑定控制器和方法,用于获取要展示的数据; // routes/web.php 中增加如下: // 展示数据 Route::get('/page', 'UsersController@page'); 2、在控制器中调用模型层执行查询操作,然后判断是否成功,成功则调用视图层展示数据 ,失败则返回失败; 控制器中方法:

/**

  • 分页展示
    */

public function page()
{
// 调用模型层中的方法获取数据
r e s = U s e r s : : p a g e ( ) ; / / 判 断 是 否 获 取 成 功 i f ( ! res = Users::page(); // 判断是否获取成功 if (! res=Users::page();//if(!res) {
return ‘数据库暂时没有数据!!’;
}
// 成功、通过 view 方法发送数据到 视图文件
return view(‘Users.page’, [‘res’ => $res]);
}
模型层中方法:

/**

  • 分页展示
  • @return array
    */

public static function page()
{
// paginate 方法会自动根据用户正在查看的页面来设置限制和偏移量
// 5 是每页显示条数
return self::paginate(5);
}
3、编辑视图层文件,通过 foreach 展示数据;

分页展示
分页展示 普通展示
@foreach ( $res as $v ) @endforeach
IDNAMEPWDSTATUSLAST LOGINACTION
{{ $v->id }}{{ $v->name }}{{ $v->pwd }}{{ $v->status }}{{ $v->last }} 修改 删除
{{ $res->links() }}
删除 1、在展示的视图文件中增加删除链接,指定删除的路由; 编辑展示的视图文件

// 视图文件中增加删除链接
// del 执行删除的路由
删除
编辑路由文件:

// 路由文件中增加如下删除路由
Route::get(’/del’, ‘UsersController@del’);
2、在控制器接收数据,调用模型执行删除操作,然后判断是否成功,成功则返回成功 ,失败则返回失败;
控制器中方法:

/**

  • 删除
    */

public function del(Request $request)
{
// 接收数据 ID
$where[‘id’] = $request->input(‘id’, 0 );
// 调用模型层中的删除方法
r e s = U s e r s : : d e l ( res = Users::del( res=Users::del(where);
// 判断执行结果
if (!$res) {
return ‘删除失败!! 跳转至展示页面’;
}
return ‘删除成功!! 跳转至展示页面’;
}
模型层中方法:

/**

  • 删除
  • @param array $where
  • @return booler
    */

public static function del(KaTeX parse error: Expected '}', got 'EOF' at end of input: …rn self::where(where)->delete();
}
修改
1、在展示的视图文件中增加修改链接,指定获取要修改的数据的路由;
编辑展示的视图文件

// 视图文件中增加修改链接
// upd 执行修改的路由
修改
编辑路由文件:

// 路由文件中增加如下删除路由
Route::get(’/upd’, ‘UsersController@upd’);
2、在控制器接收数据,调用模型获取数据,然后发送数据到视图文件;
控制器中方法:

/**

  • 获取要进行修改的数据
    */

public function upd(Request $request)
{
// 接收数据 ID
$where[‘id’] = $request->input(‘id’, 0);
// 调用模型层中的获取一条数据的方法
r e s = U s e r s : : g e t O n e ( res = Users::getOne( res=Users::getOne(where);
// 判断执行结果
if (!$res) {
return ‘数据获取失败!! 跳转至展示页面’;
}
// 成功、通过 view 方法发送数据到 视图文件
return view(‘Users.upd’, [‘res’ => $res]);
}
模型层中方法:

/**

  • 查询一条数据
  • @param array $where
  • @return array
    */

public static function getOne($where)
{
// return self::where( w h e r e ) − > f i r s t ( ) ; r e t u r n s e l f : : f i r s t W h e r e ( where )->first(); return self::firstWhere( where)>first();returnself::firstWhere(where);
}
3、将发送来的的数据展示到修改页面;

修改
<form action="doUpd" method="post">
    <div>
        <span>用户名</span>
        <span><input type="text" name="name" id="" value="{{ $res->name }}"></span>
    </div>
    <div>
        <span>密码</span>
        <span><input type="text" name="pwd" id="" value="{{ $res->pwd }}"></span>
    </div>
    <div>
        <span><input type="hidden" name="id" value="{{ $res->id }}"></span>
        <span><input type="submit" value="修改"></span>
    </div>
    <!-- 位置:官方手册 -> 基础功能 -> csrf保护 -->
    {{ csrf_field() }}
</form>
4、配置路由绑定控制器和方法,用于执行修改操作; // 执行修改 // post 提交方式、视图层中 form 的 method // doUpd 提交地址、视图层中 form 的 action Route::post('/doUpd', 'UsersController@doUpd' ); 5、在控制器接收数据,调用模型执行修改操作,然后判断是否成功,成功则返回成功 ,失败则返回失败; 控制器中方法:

/**

  • 执行修改
    */

public function doUpd(Request $request)
{
// 接收数据 ID 作为修改的条件
$where[‘id’] = $request->input(‘id’, 0);
// 接收其他数据 作为要修改的数据
$data[‘name’] = $request->input( ‘name’, ‘’ );
$data[‘pwd’] = $request->input( ‘pwd’, ‘’ );
// 调用模型层中的修改方法
$res = Users::upd( $where, d a t a ) ; / / 判 断 执 行 结 果 i f ( ! data ); // 判断执行结果 if (! data);//if(!res) {
return ‘修改失败!! 跳转至展示页面’;
}
return ‘修改成功!! 跳转至展示页面’;
}
模型层中方法:

/**

  • 修改
  • @param array $where
  • @param array $data
  • @return booler
    */

public static function upd($where, KaTeX parse error: Expected '}', got 'EOF' at end of input: …rn self::where(where)->update($data);
}
常见错误
1、Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException No message
深圳网站建设www.sz886.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值