欢迎各位兄弟 发布技术文章
这里的技术是共享的
前面我们已经部署好了需要的开发环境,现在该考虑用Laravel进行开发了。我们的目标是建立一个和Laravel入门一样的网站,功能大致如下:
功能说明
网站的功能非常简单,但是它已经可以帮我们完成一些简单的工作了,比如你所见到的这个文档。
前面我们已经明确目标网站的基本功能,现在我们先来建立它的数据库。
从功能上看,我们的数据库只需要两张表即可,admin表用来存放管理员帐户信息,docs表则是文章数据。当然你可以自己决定这两张表的名字。
我们建立的是一个功能十分简单的文档网站,因此数据库也可以很简单。admin表我们只需要id、email和password三个字段。docs表我们建立id、title、content、create_date和last_change五个字段。
下面我们可以着手建立这两张表,最简单的方法是直接在mysql中建立,你可以用可视化的phpmyadmin工具,也可以直接使用mysql命令行。但是这里讲的是用laravel框架来创建它。
首先我们需要设置一下laravel框架,打开application/config/application.php文件,我们要先把文件中的key参数设置为任意的32位字符串:
这个字符串会被用于加密我们的密码。然后在application/config/database.php中设置数据库信息,其中database是我们事先建立的,你可以随意命名:
然后我们将使用Artisan和Migrations工具来建立数据库,你可以简单的把它理解为一个数据库工具,在使用它之前我们需要初始化它。先把你的php目录加入到系统的环境变量中,然后打开cmd工具cd到web的根目录运行命令:
这是我们进入database数据库发现里面多了一张名为laravel_migrations的表,它记录了migrate需要的数据。然后我们运行下面的两条命令:
运行成功之后我们可以在application/migrations目录看到名为日期_creat_admin_table.php和日期_creat_docs_table.php两个文件。
先打开creat_admin_table.php文件,在up和down方法中添加代码:
再编辑creat_docs_table.php文件:
保存完毕之后我们继续运行命令:
来自 http://www.dedecms.com/knowledge/program/php/2012/1128/17063_3.html
非常好,网站的数据库已经建好了,我们还插入了两条数据方便我们测试。
我们并不急着用到前面已经建好的数据库,而是先试着把页面用静态的方式展现出来。
首先我们要完成的是网站首页的静态页面,打开application/views/home/目录,删除自带的index.blade.php,建立一个名为index.php的视图:
你可以看出这是一个很简单的静态页面,只能显示‘这是首页。’一句话,不过没关系,后面再慢慢丰富它。
首页的视图已经建好了,通常在MVC模式下我们需要一个controller来调用它,但这里我们不准备这么做。laravel为我们提供了一个比controller更为直观和简单的routes,因为我们要建立的网站非常简单,只有少数的几个页面,完全没必要用到完整的MVC。
打开application/routes.php文件,为首页注册一个路由规则:
这条规则的意思是当我们通过GET方式访问'/'目录(网站首页)时,直接返回application/home/index.php视图。
建议你把web树目录设置为laravel框架的public文件夹,这样你只需要访问http://127.0.0.1/即可访问框架,如果你的虚拟机没有足够的权限,apache服务器可以尝试下面的rewrite规则:
如果你不想使用以上方法,可以直接访问默认目录http://127.0.0.1/public/。
如果当你访问网站首页的时候看到‘这是首页。’,那么说明我们已经建立一个简单的静态首页,现在我们来完善它:
我们为index视图增加了三个部分:header_wrapper、main_wrapper、footer_wrapper,这样使网页结构更加清晰。同时我们还在head标签里载入了一个css文件:style.css,它会用来格式化首页。
然后我们在public/css/目录里新建一个为style.css的样式表,样式表内容可以查看:http://laravel.minimee.org/css/style.css。
现在再访问首页你会发现它已经和Laravel入门的样子差不多了,这正是我们的目的。说实话我不太擅长CSS,如果你很熟悉前端,你完全可以按照自己的意愿来写。
上面我们已经建好了首页的静态页面,现在我们来完成文章页面,有了上面已经做好的工作,我们可以更快的完成文章页面。
直接复制application/views/home/index.php,然后改名为doc.php:
然后在application/routes.php中为文章页面注册一个路由规则:
登录页面和首页有一些差别,因为我们需要一个表单来进行登录操作,不过大体模板还是差不多,我们直接在article标签内加上一个简单的表单即可:
同样需要在application/routes.php中为登录页面注册一个路由规则:
在路由中添加请求规则:
在路由中添加请求规则:
到这里我们就已经把所有需要的静态页面都建立了起来,我们可以通过访问对应的url来测试页面。不过你可能已经发现了问题,尽管都是静态页面,但是我们也重复得太多了,虽然它可以工作,但是却不够优雅。
我们用HTML建立了所需页面的静态版本,可能你也发现了问题,我们重复了很多代码。其实几个页面中大部分内容都是相同的,但是我们却重复了写了多次。
不过没有关系,Laravel框架为我们提供了Blade模板,它可以让我们把页面的公共部分提取出来。现在让我们重构一下前面的页面。
首先在Views目录中建立一个主模板:
Laravel框架的Blade模板都是以‘.blade.php’结尾,所有‘.blade.php’视图都会被Blade类解析。我们把页面的共同部分都写入了main模板中,你会看到几个新的语法:
然后我们来建立主页模板:
现在我们的index视图变得非常简单了,Laravel会自动加载main模板然后替换content中的内容。依葫芦画瓢建立其他页面模板: