完虐Yii从这里开始?

   2016-11-13 0
核心提示:目录简单配置概述Yii安装数据库实战附加福利前提条件安装:XAMPP、MAMPP,WAMPP。。。。下载好了Yii Advanced这里大概说说一下上面几点及遇到的问题1:简单配置概述因为我一直都是用Mac,所以首选XAMPP,这个安转很简单安装好了之后直接操作这些就可以关于XAM

目录

  1. 简单配置概述
  2. Yii安装
  3. 数据库实战
  4. 附加福利

前提条件

  1. 安装:XAMPP、MAMPP,WAMPP。。。。
  2. 下载好了Yii Advanced

这里大概说说一下上面几点及遇到的问题

1:简单配置概述

因为我一直都是用Mac,所以首选XAMPP,这个安转很简单安装好了之后直接操作这些就可以

关于XAMMP(。。)的安装,MyAdmin的使用,数据库的简单配置,或者Navicat的基本使用与操作等可以网站找到一大堆,或者你也可以不使用集成工具,自己配置一套,但是作为初学者跟人感觉没有必要,中间肯定会遇到什么问题的,搞不好你还要花一段时间专门解决这些问题,更夸张的是实在搞定不了还会让你放弃这条路,哈哈!

所以这里首选:XAMPP+Navicat

2:Yii安装

Yii分基础班和高级版,区别就是,高级版里面自带数据库及相关配置,分前后台,具体相关请查看官方介绍

  1. 安装基础版

解压-拷贝到-XAMPP的安装目录/htdocs文件夹里面(路径地址:/Applications/XAMPP/htdocs),然后在浏览器输入: http://127.0.0.1/basic/web/ (这里是你前面配置完成的情况下),就会出现这个界面:

  1. 安装高级版

同基础版一样,拷贝到基础班的同级目录,然后在浏览器输入(这里分前后端)

  1. 前段: http://127.0.0.1/Yii/frontend/web/index.php2.
  2. 后端: http://127.0.0.1/advanced/backend/web 这里会自动跳到: http://127.0.0.1/advanced/backend/web/index.php?r=site%2Flogin

分别就会出现一个网站的前后端。

这里说说中间遇到比较多的一个问题:

Failed to create directory '/Applications/XAMPP/xamppfiles/htdocs/advanced/backend/runtime/logs': mkdir(): Permission denied

分析: 那是因为权限问题,类似Permission denied的应该都与权限有关

解决方式:

首先:基础版的时候出现类似Permission denied问题我使用类似下面的代码就可以解决问题。

chmod 777 对应的名字
chmod 777 *

但是在高级版的时候发现还是不行,网站狂搜一顿,发现需要使用超级管理员开启权限

sudo chmod -R 0777 /Applications/XAMPP/xamppfiles/htdocs/

输入密码就可以了

好了前戏就到这里,下面正式开始

这里我使用的是PhpStorm,别问我为什么是他,任性!!!!!

注意

关于URL模式,文件夹含义,相关方法介绍,浏览器输入的形式等这里都不会做相关介绍,请查看官方文档,或者google。

数据库实战

1. 配置数据库

在advance/backend/config里面的main-local.php文件中,有个$config中的components,里面已经有一个request,我们需要增加我们的数据库配置,后面插入如下代码(这里我的数据库密码是空的)。

'db'=>[
        'class'=>'yii\db\Connection',
        'dsn'=>'mysql:host=127.0.0.1;dbname=WWWiCocos',
        'username'=>'root',
        'password'=>'',
        'charset'=>'utf8',
    ]

2. 查看数据库中的表

在advance/backend/controllers里面的SiteController中插入查询数据库的方法

public function actionGetList(){
    $allTables = Yii::$app->db->createCommand("show tables")->queryAll();
    print_r($allTables);exit;

}

这里需要注意的是,

  1. 要先在behaviors方法内部的最前面输入return [];防止Yii的忽略模式,
  2. Yii中所有方法默认一action开头,浏览器输入的时候可以不用输入action,直接输入后面的名字就可以
  3. Yii中大写会转成-,所以输入应该是get-list

输入: http://127.0.0.1/advanced/backend/web/index.php?r=site&a=get-list ,既可以查看我数据库对应的表。

3. 创建表(这里为了方便使用的是可视化,高手都用代码,哈哈)

打开navicat,链接并打开WWWiCocos数据库,新建一张表,设置相关字段,然后保存为YiiDB

4. 打开Gii

使用gii实现数据库模型文件的生成与CRUD

输入http://127.0.0.1/advanced/backend/web/index.php?r=gii

点击star,出现下面的界面,就可以开始做数据库的操作了。

5. Model Generato

开始Model Generator,去链接并生成数据库对应的表数据

填写相关信息,这里的namespace其实就是命名空间,会直接指定文件的路径,放在哪个文件夹,这里因为是数据库操作,不管前后端都会用到,所以我放在common里面的models中,

点击Preview,就可以预料生成数据库Model文件的路,并且提示你点击Generate去生成php文件

点击Generate就会生成文件成

然后我们回到PhpStorm,查看Common文件夹里面的models中就会多了一个文件叫iCocosYiiSearch.php

里面就会有我们所建数据库的信息

 20],
            [['sex', 'love'], 'string', 'max' => 255]
        ];
    }

    
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'name' => 'Name',
            'age' => 'Age',
            'sex' => 'Sex',
            'love' => 'Love',
        ];
    }
}

不信你可看看数据库中对应的字典和相关信息是否一样。

6. 生成数据库对应的模型php文件

然后回到gii点击CRUD进行数据库增删查改对应php文件的生成

在界面填写相关信息,但是有两点需要注意,需要填写对应的路径,不能直接名字,因为我们生成的CRUD对应的php文件需要文件分层,还有一个需要注意的就是类的文件名首写字母必须大写。

点击PreView预览

点击Generate生成

回到PhpStorm查看对应的上面文件路径的文件生成就会一一对应

然后在浏览器输入下面的地址执行CocosdbController中对应的index方法就可以看到如下界面,

http://127.0.0.1/advanced/backend/web/index.php?r=cocosdb/index

开始使用gii创建用户数据,点击Genertor,生成之后可以对表数据进行相应的更改

回到表界面可以看到一条数据已经生成

然后就是使用代码来做你想做的事情了

附加福利

这里我们做一些简单的界面处理

1.标题:backend/Views/cocosdb打开index.php(还有一个create.php),最上面一行

$this->title = 'iCocos用户管理';

2.字段相关提示:common/model打开iCocosYiiDBSearch.php,修改attributeLabels方法,这里改完之后里面CRUD也会改

public function attributeLabels()
{
    return [
        'id' => '用户ID',
        'name' => '用户昵称',
        'age' => '用户年龄',
        'sex' => '用户性别',
        'love' => '用户兴趣',
    ];
}

3.backend/Views/cocosdb打开view.php中Div里面增加附加标签(这是在Yii有些功能满足不了我们的要求的时候使用,拓张更多想要的东西)。

 $model,
    'attributes' => [
        'id',
        'name',
        'age',
        'sex',
        'love',
        ['label'=>'附加信息','value'=>'附加字段','format'=>'html'],

    ],
]) ?>

同时可以结合js是哪一些想要的效果。

尾声:

好了,到这里就已经基本上结束了,在下一次,我将开始先在项目中新建一个文件夹API,专门用来实现接口,给前段,后端,移动端的调用。

Q Q:2211523682/790806573

微信:18370997821/13148454507

微博WB:http://weibo.com/u/3288975567?is_hot=1

git博文:http://al1020119.github.io/

github:https://github.com/al1020119

 
标签: Yii 数据库
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Yii 框架学习:如何复制一个Ruby on Rails。
    Yii 框架学习:如何复制一个Ruby on Rails。
     早上在ruby-china发了个帖子,询问“现今PHP的框架中最接近RAILS的是什么?”大部分答曰"Yii”。所以晚上回来就来学下这个框架看看。 Yii 是一个基于组件、纯OOP的、用于开发大型 Web 应用的高性能 PHP 框架。 下载回来的软件包解压后结构如下:CHANGELOG
    02-09
  • yii 隐藏index.php
        首先,开启apache的rewrite模块    去掉rewrite前的#,如下所示    LoadModule rewrite_module modules/mod_rewrite.so     接着,在yii的index.php同级目录建立.htaccess文件,内容如下    IfModule mod_rewrite.c       Optio
    02-09
  • php Yii2框架创建定时任务方法详解
    目录简单的定时任务脚步文件传递参数设置参数别名在Linux配置crontab在我们项目开发中,需要使用定时任务来完成批处理业务,下面通过Yii2框架来实现定时任务Yii2框架定时任务代码统一放在 ./console 目录下简单的定时任务脚步文件首先在console/controller目
  • yii2的数据库层设计
    Yii2在M层的抽象做的很经典,值得分析理解。QueryBuilder不同的数据库引擎(mysql,oracle…)执行相同的SQL,可能语法有一些细微的差异,但是SQL整体语法差别不大,所以会定义一个QueryBuilder基类,它提供一般通用的SQL生成方法,具体每个数据库引擎继承Quer
    02-05 SQLYii
  • 码云推荐 | 基于Yii2的后台开源骨架 openadm-yi
    OpenAdmOpenAdm是一个基于Yii2的后台开源骨架,集成了用户和插件系统,使用主题功能,默认使用AdminLTE2的模板的主题,可以非常方便的开发新的功能。Demo地址:http://yii2.openadm.com后台账号: admin后台密码: admin仓库地址:OSC:https://git.oschina.net/xiong
    02-05 Yii开源
  • Yii2配置多语言
    我的YII2版本是2.0.7, 设置多语言时和其他教程有不同的地方, 所以整理如下1. 在一个controller里面写一个调用i18n的语句, 比如actionIndexecho \Yii::t('app', 'whatisthis');现在进入这个页面, 页面输出whatisthis2. 手动创建一个文件夹messages来存放多语言
    02-05 Yii
  • Yii2 的问题解决方案
    Yii2 的问题解决方案
    yii2 Class 'app\controllers\AccessControl' not found一般是命名空间问题, 写成\yii\filters\AccessControl::className(),yii2想要新增第三方vendor, 修改composer.json,require-dev: {yiisoft/yii2-codeception: *,yiisoft/yii2-debug: *,yiisoft/yii2-gii
    02-05 Yii
  • Yii 2.0.11.1 发布,高性能 PHP 框架
    Yii 2.0.11.1 发布了。Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具 yiic 可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。 更新内容: Bug #11502: Fixed yii\
    02-05 Yii高性能
  • 码云推荐 | 基于 yii2 的快速配置 api 服务 yii2-fast-api
    码云推荐 | 基于 yii2 的快速配置 api 服务 yii
    yii2-fast-api yii2-fast-api是一个Yii2框架的扩展,用于配置完善Yii2,以实现api的快速开发。此扩展默认的场景是APP的后端接口开发,因此偏向于实用主义,并未完全采用restfull的标准,方便前端开发处理接口数据以及各种异常。Installation 使用 Composer 安
    02-05 YiiAPI
  • 简述Yii2里的AOP思想
    AOP是什么在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP解决什么将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过
    12-23 AOPYii
点击排行