laravel前后端交互修改角色

一、修改角色

1.1 修改角色模版

修改角色模版:
resource\views\admin\role\edit.blade.php

<!--_meta 作为公共模版分离出去-->
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico" >
<link rel="Shortcut Icon" href="/favicon.ico" />

<link rel="stylesheet" type="text/css" href="/admin/static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="/admin/lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="/admin/static/h-ui.admin/css/style.css" />


<title>修改角色</title>
</head>
<body>
<article class="page-container">
	<!-- 表单验证 -->
	@include('admin.common.validate')
	<form action="{{route('admin.role.update', $model)}}" method="post" class="form form-horizontal" id="form-member-add">
	@csrf
		<div class="row cl">
			<label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>角色:</label>
			<div class="formControls col-xs-8 col-sm-9">
				<!-- 闪存 -->
				<input type="text" class="input-text" value="{{$model -> name}}" placeholder="角色名" id="username" name="name">
			</div>
		</div>
		<div class="row cl">
			<div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
				<input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;修改角色&nbsp;&nbsp;">
			</div>
		</div>
	</form>
</article>

<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="/admin/lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="/admin/lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="/admin/static/h-ui/js/H-ui.min.js"></script> 
<script type="text/javascript" src="/admin/static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->

<!--请在下方写此页面业务相关的脚本--> 
<script type="text/javascript" src="/admin/lib/My97DatePicker/4.8/WdatePicker.js"></script>
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/jquery.validate.js"></script> 
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/validate-methods.js"></script> 
<script type="text/javascript" src="/admin/lib/jquery.validation/1.14.0/messages_zh.js"></script>
<script type="text/javascript">
// 采用ajax 进行提交
	$(function() {

		$("#form-member-add").validate({
			// rules: {
			// 	name: {
			// 		required: true,
			// 	}

			// },
			onkeyup: false,
			focusCleanup: true,
			success: "valid",
			submitHandler: function(form) {
				let url = $(form).attr('action');
				// 表单序列化
				let data = $(form).serialize();
				console.log(data)
				// put提交
				$.ajax({
					url,
					data,
					type: "PUT"
				}).then((res) => {
					console.log(res);
					if (res.status == 20002) {
						layer.msg(res.msg, {icon: 2, time: 2000});
					}
					else if (res.status == 1) {
						layer.msg(res.msg, {icon: 1, time: 2000},() => {
							location.href = "{{route('admin.role.index')}}";
						})
					}
				})
			}

		});

	});
</script>
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>

1.2 修改角色控制器显示

/**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit(int $id)
    {
        $model = Role::find($id);
        return view('admin.role.edit', compact('model'));
    }

在这里插入图片描述

1.3 修改角色控制器逻辑

 /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, int $id)
    {
        // 异常处理
        try {
            // 后台验证
            $this -> validate($request, [
                // unique:表名,唯一字段,排除行的值,以哪个字段来排除
                'name' => 'required|unique:roles,name,'.$id.',id' // 排除id=3的那行
            ]);
        }
        catch (Exception $e) {
            return ['status' => 20002, 'msg' => '验证不通过!'];
        }
        // 修改角色入库
        Role::where('id', $id) -> update($request->only(['name']));
        return ['status' => 1, 'msg' => '修改用户成功!'];
    }

在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要实现 Laravel 前后端交互,可以使用 Laravel 提供的路由和控制器来处理前端请求并返回相应的数据。以下是一个简单的示例。 首先,假设您已经创建了一个 Vue.js 的前端项目,并且需要与 Laravel 后端进行交互。 1. 在 Laravel 中创建一个路由来处理前端请求: ```php // routes/web.php Route::get('/api/data', 'DataController@index'); ``` 上面的代码创建了一个 `/api/data` 的路由,并将其指向 `DataController` 控制器的 `index` 方法。 2. 创建 `DataController` 控制器,并实现 `index` 方法: ```php // app/Http/Controllers/DataController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class DataController extends Controller { public function index(Request $request) { // 处理前端请求并返回相应的数据 return response()->json(['data' => ['foo' => 'bar']]); } } ``` 上面的代码创建了一个 `DataController` 控制器,并实现了 `index` 方法。该方法会处理前端的请求,并返回一个 JSON 格式的响应。 3. 在前端项目中发送请求并处理响应: ```javascript // frontend/src/App.vue <template> <div> <button @click="fetchData">Fetch Data</button> <div v-if="data">{{ data }}</div> </div> </template> <script> export default { data() { return { data: null, }; }, methods: { async fetchData() { const response = await fetch('/api/data'); const data = await response.json(); this.data = data; }, }, }; </script> ``` 上面的代码在前端项目中创建了一个按钮,并在点击按钮时发送请求到 `/api/data`。请求完成后,将响应数据存储在组件的 `data` 属性中,并渲染到页面中。 这样,您就可以在 Laravel 和 Vue.js 之间实现简单的前后端交互了。当然,这只是一个简单的示例,实际应用中可能需要更复杂的逻辑来处理请求和响应。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值