JSON

Laravel 4 系列入门教程(一)【最适合中国人的Laravel教程】(9)

字号+ 作者:H5之家 来源:H5之家 2015-10-10 16:49 我要评论( )

然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel 的文件夹,这时候如果你通过浏览器访问learnlaravel/public/ 目录,基本都会显示Error in exception handler. ,这是因为 learnlaravel/app/storage 目录没

然后,稍等片刻,当前目录下就会出现一个叫 learnlaravel 的文件夹,这时候如果你通过浏览器访问 learnlaravel/public/ 目录,基本都会显示 Error in exception handler.  ,这是因为 learnlaravel/app/storage 目录没有 777 权限,设置好权限即可看见页面如下图:

QQ20140930-3.jpg


恭喜你~Laravel安装成功!


不想配置镜像的同学,可以使用 Laravel 界非常著名的超超搞得安装神器:https://github.com/overtrue/latest-laravel


2. 必要插件安装及配置

我们使用著名的Sentry插件来构建登录等权限验证系统。

打开 ./composer.json ,变更为:

"require": { "laravel/framework": "4.2.*", "cartalyst/sentry": "2.1.4" },


然后,在项目根目录下运行命令

composer update


然后稍等一会儿,它会提示 cartalyst/sentry 2.1.4安装完成。


同理,我们将安装一个开发用的非常强大的插件,way/generators,这是它在composer库中的名字。在 composer.json中增加:

"require-dev": { "way/generators": "~2.0" },

和“require”同级,放在下面,不是里面哦~。


运行 composer update,之后在 ./app/config/app.php 中 恰当的位置 增加配置:

'Way\Generators\GeneratorsServiceProvider'

安装完成过,在命令行中运行 php artisan,就可以看到这个插件带来的许多新的功能。


有人会问,为什么用了国内镜像还是如此之慢?其实composer在update的时候最慢的地方并不是下载,而是下载之前的依赖关系解析,由于Laravel依赖的composer包非常之多,PHP脚本的执行速度又比较慢,所以每次update等个两三分钟很正常,习惯就好。


3. 数据库建立及迁移


数据库配置文件位于 ./app/config/database.php,我们需要把“connections”中的“mysql”项改成我们需要的配置。下面是我的配置:

'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'laravel', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => 'l4_', ),


prefix为表前缀,这个Laravel会帮我们自动维护,大胆写上不用担心。


这时候你需要去数据库建立此数据库,然后在命令行中输入:

php artisan migrate --package=cartalyst/sentry


执行完成后,你的数据库里就有了5张表,这是sentry自己建立的。sentry在Laravel4下的配置详情见 ,我大致说一下:


在 ./app/config/app.php 中 相应的位置 分别增加以下两行:

'Cartalyst\Sentry\SentryServiceProvider','Sentry' => 'Cartalyst\Sentry\Facades\Laravel\Sentry',

权限系统的数据库配置到此为止。


我们的简单blog系统将会有两种元素,Article和Page,下面我们将创建articles和pages数据表,命令行运行:

php artisan migrate:make create_articles_table --create=articles php artisan migrate:make create_pages_table --create=pages


这时候,去到 ./app/database/migrations,将会看到多出了两个文件,这就是数据库迁移文件,过一会我们将操作artisan将这两个文件描述的两张表变成数据库中真实的两张表,放心,一切都是自动的。

下面,在***_create_articles_table.php中修改:

Schema::create('articles', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->string('slug')->nullable(); $table->text('body')->nullable(); $table->string('image')->nullable(); $table->integer('user_id'); $table->timestamps(); });


在***_create_pages_table.php中修改:

Schema::create('pages', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->string('slug')->nullable(); $table->text('body')->nullable(); $table->integer('user_id'); $table->timestamps(); });


下面,就是见证奇迹的时刻,在命令行中运行:

php artisan migrate


这时候数据库中的articles表和pages表就建立完成了。


4. 模型 Models

接下来我们将接触Laravel最为强大的部分,Eloquent ORM,真正提高生产力的地方,借用库克的话说一句,鹅妹子英!

我们在命令行运行下列语句以创建两个model:

php artisan generate:model article php artisan generate:model page

这时候,在 app/models/ 下就出现了两个文件 Article.php 和 Page.php,这是两个 Model 类,他们都继承了Laravel提供的核心类 \Eloquent。这里需要强调一下,用命令行的方式创建文件,和自己手动创建文件没有任何区别,你也可以尝试自己创建这两个 Model 类哦。

Model 即为 MVC 中的 M,翻译为 模型,负责跟数据库交互。在 Eloquent 中,数据库中每一张表对应着一个 Model 类。

如果你从其他框架转过来,可能对这里一笔带过的 Model 部分很不适应,没办法,是因为 Eloquent 实在太强大了啦,真的没什么好做的,继承一下 Eloquent 类就能实现很多很多功能了。详见 Eloquent 系列教程:深入理解 Laravel Eloquent(一)——基本概念及用法

5. 数据库填充

分别运行下列命令:

php artisan generate:seed page php artisan generate:seed article

这时,在 ./app/database/seeds/ 下就出现了两个新的文件,这就是我们的数据库填充文件。Laravel提供自动数据库填充,十分方便。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评