eloverde-sistemas/laravel-crud-builder 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

eloverde-sistemas/laravel-crud-builder

最新稳定版本:v1.0.5

Composer 安装命令:

composer require eloverde-sistemas/laravel-crud-builder

包简介

README 文档

README

This package allows you to create and update your Eloquent model and sync relationships based on a request. Request parameter names follow the JSON API specification as closely as possible.

Note: Inspired in Spatie's query builder package.

Basic usage

Create a model based on a Request:

Request body:

{
  data: {
    attributes: {
      name: 'Paul',
      age: 77
    }
  }
}

PHP controller code:

  use CrudBuilder\CrudBuilder;
    
  $singer = CrudBuilder::for(Singer::class)
    ->allowedAttributes('age', 'name')
    ->create();
  
  //A singer is created in database with the request data 

Update a model based on a Request:

Request body:

{
  data: {
    id: 1,
    attributes: {
      name: 'Paul',
      age: 77
    }
  }
}

PHP controller code:

  use CrudBuilder\CrudBuilder;
    
  $singer = CrudBuilder::for(Singer::class)
    ->allowedAttributes('age', 'name')
    ->update();
  
  //A singer with the requested id is updated in database with the request data 

Is sure possible to create or update based on the presence of ID in the Request with the ->createOrUpdate() method.

Update a model based on a Request, ignoring some attributes:

Request body:

{
  data: {
    id: 1,
    attributes: {
      name: 'Paul',
      surname: 'McCartney',
      age: 77
    }
  }
}

PHP controller code:

  use CrudBuilder\CrudBuilder;
    
  $singer = CrudBuilder::for(Singer::class)
    ->ignoreAttributes('age', 'surname')
    ->allowedAttributes('name')
    ->update();
  
  //A singer with the requested id is updated in database with the request data, except the ignored attributes 

Update a model based on a Request, including relationships:

Request body:

{
  data: {
    id: 1,
    attributes: {
      name: 'Paul'
    },
    relationships: {
      band: {
        data: {
          id: 1
        }
      }
    }
  }
}

PHP model code:

class SingerModel extends Model
{
  public function band()
  {
      return $this->belongsTo(Band::class);
  }
}

PHP controller code:

  use CrudBuilder\CrudBuilder;
    
  $singer = CrudBuilder::for(Singer::class)
    ->allowedAttributes('name')
    ->allowedRelations('band')
    ->update();
  
  //A singer with the requested id is updated in database with the request data, including the relationship 

Note: The only supported relationships so far are: BelongsTo and HasMany.

统计信息

  • 总下载量: 37.52k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-02-16