Laravel被称为"全栈"式框架,由于它可以处理从网络服务到数据库管理、HTML生成的一切事情,垂直集成的web开发环境给开发者提供了更好的体验。php
一、laravel 安装css
网上不少介绍的,这里参考官方网址laravel
http://www.golaravel.com/laravel/docs/5.1/web
二、composer 安装数据库
官方网址:http://www.phpcomposer.com/5-features-to-know-about-composer-php/express
三、建立laravel站点django
composer create-project laravel/laravel your-project-name --prefer-dist
浏览器
这个命令会下载并安装一份全新的 Laravel 存放在指定的 your-project-name 的目录中。ruby
四、运行程序服务器
1)安装PHP环境,能够将项目放到/var/www/下面。
2)若是没有php环境,能够运行如下命令
$php artisan serve
上述命令会启动 PHP 内建的开发服务器,要查看程序,请打开一个浏览器窗口,访问http://localhost:8000 。应该会看到默认的 Laravel 信息页面:
5、 显示"Hello, Laravel!"
要在 Laravel 中显示"Hello, Laravel!",须要新建一个控制器和视图。
控制器用来接受向程序发起的请求。路由决定哪一个控制器会接受到这个请求。通常状况下,每一个控制器都有多个路由,对应不一样的动做。动做用来提供视图中须要的数据。
视图的做用是,以人类能看懂的格式显示数据。有一点要特别注意,数据是在控制器中获取的,而不是在视图中。视图只是把数据显示出来。默认状况下,视图使用 Blade 编写,经由 Laravel 解析后,再发送给用户。
控制器可用控制器生成器建立,你要告诉生成器,我想要个名为"welcome"的控制器,以下所示:
$ php artisan controller:make WelcomeController --only=index
运行上述命令后,Laravel 会生成 app/controllers/WelcomeController.php 文件。生成文件后修改其中的 index 方法:
public function index() { return View::make('welcome.index'); }
*建立视图: *
<h1>Hello, Laravel!</h1>
;六、查看路由
执行 $ php artisan routes
任务,会看到定义了全部标准的 REST 动做。输出结果中各列的意义稍后会说明。
+--------+-----------------------------------+------------------+----------------------------+----------------+---------------+ | Domain | URI | Name | Action | Before Filters | After Filters | +--------+-----------------------------------+------------------+----------------------------+----------------+---------------+ | | GET|HEAD / | | WelcomeController@index | | | | | GET|HEAD articles | articles.index | ArticlesController@index | | | | | GET|HEAD articles/create | articles.create | ArticlesController@create | | | | | POST articles | articles.store | ArticlesController@store | | | | | GET|HEAD articles/{articles} | articles.show | ArticlesController@show | | | | | GET|HEAD articles/{articles}/edit | articles.edit | ArticlesController@edit | | | | | PUT articles/{articles} | articles.update | ArticlesController@update | | | | | PATCH articles/{articles} | | ArticlesController@update | | | | | DELETE articles/{articles} | articles.destroy | ArticlesController@destroy | | | +--------+-----------------------------------+------------------+----------------------------+----------------+---------------+
七、建立控制器
建立名为 ArticlesController 的控制器。执行下面的命令便可:
$ php artisan controller:make ArticlesController
$ php artisan controller:make ArticlesController
打开刚生成的 app/controllers/ArticlesController.php 文件,控制器就是一个类,继承自 BaseController。在这个 ArticlesController 类中定义了对应的资源动做。动做的做用是处理文章的 CRUD 操做。
修改 ArticlesController.php 文件中的
public function create() { // }
为
public function create() { return View::make('articles.create'); }
在 PHP 中,方法分为 public、private 和 protected 三种,只有 public 方法才能做为控制器的动做。
八、 首个表单
要在模板中编写表单,可使用"表单构造器"。Laravel 中经常使用的表单构造器是 Form
。在 app/views/articles/create.blade.php 文件中加入如下代码:
{{ Form::open() }} <p> {{ Form::text('title') }} </p> <p> {{ Form::text('text') }} </p> <p> {{ Form::submit('submit') }} </p> {{ Form::close() }}
如今刷新页面,会看到上述代码生成的表单。在 Laravel 中编写表单就是这么简单!
在 Form 方法的块中,Form::text 建立了两个标签和两个文本字段,一个用于文章标题,一个用于文章内容。最后,Form::submit 建立一个提交按钮。
不过这个表单还有个问题。若是查看这个页面的源码,会发现表单 action 属性的值是 /articles/create。这就是问题所在,由于其指向的地址就是如今这个页面,而这个页面是用来显示新建文章表单的。
要想转到其余地址,就要使用其余的地址。这个问题可以使用 Form::open 方法的 url 参数解决。在 Laravel 中,用来处理新建资源表单提交数据的动做是 store,因此表单应该转向这个动做。
修改 app/views/articles/create.blade.php 文件中的 Form::open,改为这样:
{{ Form::open(array('url' => 'articles')) }}
这里,咱们把 url 参数的值设为 articles 。对应的地址是 /articels,默认状况下,这个表单会向这个路由发起 POST 请求。这个路由对应于 ArticlesController 控制器的 store 动做。
表单写好了,路由也定义了,如今能够填写表单,而后点击提交按钮新建文章了。
提交表单,会看到一个白屏。如今暂且无论这个错误。store 动做的做用是把新文章保存到数据库中。
提交表单后,其中的字段以参数的形式传递给 Laravel。这些参数能够在控制器的动做中使用,完成指定的操做。要想查看这些参数的内容,能够把 store 动做改为:
public function store() { dd(Input::all()); }
dd 函数为 Laravel 内置的打印输出函数,Input::all() 取得全部发出请求时传入的输入数据。
若是如今再次提交表单,不会再看到白屏错误,而是会看到相似下面的文字:
array (size=3) '_token' => string 'plx6TrGRWfHakBlKybUzkRTH8r712JU4rWfiPTs7' (length=40) 'title' => string 'First article!' (length=14) 'text' => string 'This is my first article.' (length=25)
store 动做把表单提交的参数显示出来了。不过这么作没什么用,看到了参数又怎样,什么都没发生。
在 Laravel 中,模型的名字使用单数,对应的数据表名使用复数。
建立 app/models/Article.php 并写入如下代码:
<?php class Article extends Eloquent { }
注意咱们并无告诉 Eloquent Article 模型会使用哪一个数据库表。若没有特别指定,系统会默认自动对应名称为「类名称的小写复数形态」的数据库表。因此,在上面的例子中, Eloquent 会假设 Article 将把数据存在 articles 数据库表。
使用 Artisan CLI 的 migrate:make 命令创建迁移文件:
$ php artisan migrate:make create_articles_table --create=articles
迁移文件会创建在 app/database/migrations 目录下,文件名会包含时间戳,用于在执行迁移时用来决定顺序。
app/database/migrations/20140903084339createarticlestable.php (你的迁移文件名可能有点不同)文件的内容以下所示:
<?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateArticlesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('articles', function(Blueprint $table) { $table->increments('id'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop('articles'); } }
修改其中的建立代码为:
Schema::create('articles', function(Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('text'); $table->timestamps(); });
在这个迁移中定义了一个名为 up 的方法,在运行迁移时执行。up 方法中定义的操做都是能够经过 down 方法实现可逆的,Laravel 知道如何撤销此次迁移操做。运行迁移后,会建立 articles 表,以及一个字符串字段和文本字段。同时还会建立两个时间戳字段,用来跟踪记录的建立时间和更新时间。
而后,使用 Artisan 命令运行迁移:
$ php artisan migrate
Laravel 会执行迁移操做,告诉你建立了 articles 表。
Migration table created successfully. Migrated: 20140903084339createarticlestable
再回到 ArticlesController 控制器,咱们要修改 store 动做,使用 Article 模型把数据保存到数据库中。打开 app/controllers/ArticlesController.php 文件,把 store 动做修改为这样:
public function store() { $article = Article::create(array('title'=>Input::get('title'), 'text'=>Input::get('text'))); return Redirect::route('articles.show', array($article->id)); }
同时在 app/models/Article.php 添加 :
protected $fillable = array('title', 'text');
fillable 属性容许在动做中调用模型的 create 方法使用 title 和 text 属性。
再次访问 http://localhost:8000/articles/create ,填写表单,还差一步就能建立文章了。