Marco de desarrollo PHP laravel5.5 pequeño proyecto para desarrollo web back-end (CRUD)

  • Elemento de lista

1. Cree un modelo de dispositivo

php artisan make:model Device

Inserte la descripción de la imagen aquí

    //用户模型关联的表
    public $table="devices";
    //关联表的主键
    public $primaryKey="device_id";
    //禁用模型的时间戳
    public $timestamps =false;

2. Crear controlador de recursos de dispositivo

 php artisan make:Controller  DeviceController r  DeviceController --resource

Inserte la descripción de la imagen aquí

Únete a web.php

Route::resource('/device',"DeviceController");

3. Diseño de la tabla de dispositivos

Inserte la descripción de la imagen aquí

4. Controlador de recursos de la lista de dispositivos

//获取10条
$devices = Device::paginate(10);
return view('device.list')->with('devices',$devices);

5. Página de lista de dispositivos

<div class="container">

<h2>设备管理</h2>
<input type="button" onclick="location.href='/user/create'" class="btn btn-success" value="添加设备" />

<table class="table table-striped">
 <thead>
<tr>
<th>用户id</th>
<th>设备id</th>
<th>设备名字</th>
<th>设备类型</th>
<th>设备位置</th>
<th>设备数据</th>
<th>操作</th>
</tr>
 </thead>
 <tbody>
 @foreach($devices as $v)
 <tr>
 <td>{
   
   {$v->user_id}}</td>
  <td>{
   
   {$v->device_id}}</td>
  <td>{
   
   {$v->device_name}}</td>
   <td>{
   
   {$v->device_type}}</td>
    <td>{
   
   {$v->device_location}}</td>
     <td>{
   
   {$v->device_data}}</td>
     <td>
     <input type="button" value="编辑" onclick="location.href='/device/{
     
     {$v->id}}/edit'"/>
     <input type="button" value="删除" onclick="deleteOne({
     
     {$v->id}})" />
     </td> 
 </tr> 
 @endforeach 
 </tbody> 
</table>

{
   
   {$devices->links()}}

</div>
<script type="text/javascript">
function deleteOne(id)
{
     
     
	$.post("user/"+id,{
     
     "id":id,"_token":"{
     
     {csrf_token()}}","_method":"DELETE"},
		function(data){
     
     
			alert(data);
			location.reload();
		},'text');
	}
</script>


Ejecutar captura de pantalla

Inserte la descripción de la imagen aquí

6. Agregar dispositivo

Solo puede agregar un dispositivo debajo de un usuario existente. Si el usuario no existe, la adición fallará.

Código de interfaz:

@extends('layouts.app')

@section('content')
<div class="container">

<h2>添加新设备</h2>
<br>
<form action="/device" method="post">
{
   
   {csrf_field()}}
 <div class="form-group">
    <label for="user_id">用户ID</label>
    <input type="text" class="form-control" name="user_id" id="user_id" placeholder="请输入用户ID.....">
  </div>
 
  <div class="form-group">
    <label for="device_id">设备ID</label>
    <input type="text" class="form-control" name="device_id" id="device_id" placeholder="请输入设备ID.....">
  </div>

 <div class="form-group">
    <label for="device_name">设备名称</label>
    <input type="text" class="form-control" name="device_name" id="device_name" placeholder="请输入用户名称....">
  </div>

  <div class="form-group">
    <label for="device_type">设备类型</label>  
    <select  class="form-control"  name="device_type" id="device_type">
        <option value="传感器">传感器</option>
        <option value="继电器">继电器</option>
        <option value="其他">其他</option>                         
    </select>
  </div>
  
  <div class="form-group">
    <label for="username">设备位置</label>
    <input type="text" class="form-control" name="device_location" id="device_location" placeholder="请输入设备位置">
  </div>

  <button type="submit" class="btn btn-default" >提交</button>
</form>

</div>



@endsection

Crear función en el controlador de recursos

public function create()
    {
    
    
        //
        return view('device.create');

    }

Llame a la función de la tienda al enviar

 //新建一个设备和用户
        $device = new Device();
        $user = new User();
        if($request->user_id!=null&&$request->device_id!=null&&$request->device_name!=null
           &&$request->device_type!=null&&$request->device_location!=null){
    
    
           //查找user表中是否存在该用户,存在即可添加设备,不存在不运行添加
            $user = User::find($request->user_id);
            if($user!=null)
            {
    
    
                $device->user_id=$request->user_id;
                $device->device_id=$request->device_id;
                $device->device_name=$request->device_name;
                $device->device_type=$request->device_type;
                $device->device_location=$request->device_location;
                //将该设备信息保存
                 $device->save();
                 //重定向至“/user路由”
                 return redirect("/device");
            }
            else{
    
    
                //
                return "用户不存在!";
            }
            

           }
        else{
    
    
           
            return "请检查表单是否填写完整!" ;
        }



        
    }

Inserte la descripción de la imagen aquí

7. Quitar dispositivo

Código de interfaz:

<input type="button" value="删除" onclick="deleteOne({
   
   {$v->device_id}})" />
<script type="text/javascript">
function deleteOne(id)
{
	$.post("device/"+id,{"id":id,"_token":"{
   
   {csrf_token()}}","_method":"DELETE"},
		function(data){
			alert(data);
			location.reload();
		},'text');
	}
</script>

En la función de destrucción del controlador de recursos del dispositivo

     public function destroy($id)
    {
    
    
        $device=Device::find($id);
        $device->delete();
        return "Done";
    }

interfaz

[Error en la transferencia de la imagen del enlace externo. El sitio de origen puede tener un mecanismo anti-hotlinking. Se recomienda guardar la imagen y cargarla directamente (img-eWhIja0e-1607841855569) (C: \ Users \ jiangdada \ AppData \ Roaming \ Typora \ typora-user-images \ image-20201212135603574.png)]

8. Ver información

Cuando se hace clic en la identificación del dispositivo, la ruta para saltar

<td><a href="/device/{
     
     {$v->device_id}}">{
   
   {$v->device_id}}</a></td>

La función show en el controlador de recursos regresa a la vista detallada y lleva parámetros

public function show($id)
{
        $device=Device::find($id);
        return view('device.show')->with('device',$device);
}

Ver vista de detalles

@extends('layouts.app')
@section('content')
<div class="container">
<h2>设备详情</h2>
<p>用户备位置:{
    
    {
    
    $device->device_location}}</p>
</div>
@endsection

La interfaz es la siguiente:
1

9. Editar dispositivo

Haga clic en Editar dispositivo para editar el nombre y la ubicación del dispositivo.

 <input type="button" value="编辑" onclick="location.href='/device/{
     
     {$v->device_id}}/edit'"/>

La función de edición en el controlador de recursos salta a la vista de edición

    public function edit($id)
    {
    
    
        return view('device.edit')->with('id',$id);
    }

Editar vista de interfaz

@extends('layouts.app')

@section('content')

<h2>编辑设备信息</h2>
<form action="/device/{
   
   {$id}}" method="post">
{
   
   {csrf_field()}}
{
   
   {method_field('PUT')}}
<div class="form-group">
    <label for="name">设备名称</label>
    <input type="text" class="form-control" id="device_name" name="device_name" placeholder="请输入设备名称">
  </div>
    <div class="form-group">
    <label for="location">设备位置</label>
    <input type="text" class="form-control" id="device_location" name="device_location" placeholder="请输入设备位置">
  </div>
  <input type="submit" value="提交"/>
</form>
@endsection

Editar interfaz

Inserte la descripción de la imagen aquí

Función de actualización en el controlador de recursos

    public function update(Request $request, $id)
    {
    
    
        //
        $device = Device::find($id);
        $device->device_name=$request->device_name;
        $device->device_location=$request->device_location;
        $device->save();
        return redirect("/device");
    }

Supongo que te gusta

Origin blog.csdn.net/JIANGYINGH/article/details/111115665
Recomendado
Clasificación