affiliate
1.0.0
Il s'agit d'un système de démonstration pour le développement de PHP pendant de nombreuses années. Le frontal utilise Vuejs 2.6 + ElementUI, et le back-end utilise PHP Laravel 6.2, qui est basé sur MySQL 5.7. Ce qui n'est pas fait trop compliqué, c'est que le développement des systèmes de séparation avant et arrière montre le processus de fonctionnement de Vuejs + PHP (Laravel) + MySQL. Ayez des modules client Alliance, des modules de commande, des modules de matériau. Une partie de la pièce impliquée dans le middleware du message RabbitMQ n'est pas bonne et elle n'est pas mise.
修改 /etc/hosts
127.0.0.1 www.dev.com api.dev.com admin.dev.com
api 基于Laravel 6.2的Api服务器,演示部署域名: api.dev.com
frontend 给联盟客用的主站界面,演示部署域名: www.dev.com
backend 后台管理界面,演示部署域名: admin.dev.com
use App Http Requests Backend BannerListPost ;
class BannerController extends Controller
{
/**
* 列表
* @author: [email protected]
* Date: 2019-11-13
*
* @param BannerListPost $post
*
* @return IlluminateHttpJsonResponse
*/
public function actionList ( BannerListPost $ post )
{
$ totalRows = 0 ;
$ list = BannerService:: singleton ()-> findListByPage ( $ post , $ totalRows );
foreach ( $ list as $ item ) {
$ item -> thumb_url = UtilHelper:: thumbUrl ( $ item -> pic_url );
$ item -> statusText = BannerEnum:: STATUS_TEXT_LIST [ $ item -> status ] ?? '' ;
}
return $ this -> jsonSuccess ([
' list ' => $ list ,
' page ' => $ post -> page ,
' perPage ' => $ post -> perPage ,
' totalRows ' => $ totalRows
]);
}
}
/**
* 使用Laravel参数验证器
* Class BannerListPost
* @package AppHttpRequests
*
* @property $title string
* @property $status int
*/
class BannerListPost extends BasePageListPost
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' status ' => ' nullable|integer|in:1,2 ' ,
' title ' => ' nullable|min:1|max:50 ' ,
];
}
public function attributes ()
{
return [
' title ' => '标题' ,
' status ' => '上架状态' ,
];
}
}
class BannerService extends BaseService
{
/**
* @author: [email protected]
* Date: 2019-11-13
*
* @param BannerListPost $post
* @param int $totalRows
*
* @return BannerModel[]
*/
public function findListByPage ( BannerListPost $ post , int & $ totalRows )
{
$ where = [];
if ( $ post -> title ) {
$ where [] = [ ' title ' , ' like ' , ' % ' . addcslashes ( $ post -> title , ' % ' ). ' % ' ];
}
if ( $ post -> status ) {
$ where [] = [ ' status ' , ' = ' , $ post -> status ];
}
$ list = BannerModel:: singleton ()-> findListByPage ( $ where , $ post -> page , $ post -> perPage , $ totalRows );
return $ list ;
}
}
class BannerModel extends ValidateBaseModel
{
/**
* 分页获取多个实例(Model数组)
* @author: [email protected]
* Date: 2019-03-02 *
*
* @param array $where
* @param int $page
* @param int $perPage
* @param int $totalRows 返回查询总数
*
* @return static[]
*/
public function findListByPage ( array $ where , $ page , $ perPage , & $ totalRows , $ orderByDesc = ' id ' )
{
$ query = static :: query ();
$ query -> where ( $ where )-> forPage ( $ page , $ perPage )-> orderByDesc ( $ orderByDesc );
$ list = $ query -> get ()-> all ();
$ totalRows = $ query -> toBase ()-> getCountForPagination ();
return $ list ;
}
}