主要是在laravist上看视频,讲的很棒,感觉学到了很多。好喜欢最后的那句:Happy Hacking~
Artisan 是 Laravel 内置的命令行接口。它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动。
插一句,安装comper弄了很久,因为网上都是OS X的方法而我开始不知道也完全不懂。看教程的时候有个博主直接说:windows是最差的开发平台没有之一。
看到这句立马关掉了他的教程,我没用过OS X自然没有发言权,但是不喜欢这样偏颇的人,是很别扭,但是就像WP,从Android用到ios再到它,我知道app生态有多差,但是我仍然喜欢它。
- 从composer上建立项目: - composer create-project laravel/laravel test_laravel 
- 启动服务器: - php artisan serve 
在这里和同事讨论了一下,因为太菜了半天才懂她卡在什么地方,她一直想着去配置Apache,但是Laravel使用的是PHP内置的服务器,所以其实把WAMP的Apache关掉也可以直接运行,项目也不用放在www文件夹下。
用blade来布局真的很方便,可以在视图中继承(extend) 一个 Blade 页面布局。
在blade中添加好css(bootCDN的bootstrap css推荐!
@yield('') | @extends('')@section('')@stop
- 建立一个controller(在命令最后加 --plain可以创建一个没有任何预定义方法的控制器。 - php artisan make:controller SitesController 
然后添加方法:
 public function about()
    {
        return view('sites.about');
    }
在Resources\views中新建about.blade.php
- 注册路由,查看页面需要在http文件下的routes.php中注册路由 - Route::get('/about', 'SitesController@about'); 
- 传递数据回视图(view)
最后在about方法中写入:
    $people = ['Talor Otwell','Jeffray Way','Happy Peter'];
    return view('sites.contact',compact('people'));
blade.php显示
@section('content')
<h1>Page</h1>
<h3>People I Admire</h3>
<ul>
    @if count($people>0)
    @foreach($people as $person)
    <li>{{$person}}</li>
    @endforeach
</ul>
@endif
@stop
[config] | 环境配置
app.php
'debug' => env('APP_DEBUG', true), //上线后记得改回false
'timezone' => 'PRC' //设为中国时区People's Republic of China
migration可以看做是数据库版本管理,因为可以roll back。
创建一个migration文件并执行就可以直接生成表:
php artisan make:migration create_articles_table --create=articles
创建数据表的时候一直报错,Access denied。
发现远原来.env文件没配置好,
DB_DATABASE:laravel
DB_USERNAME:root 
DB_PASSWORD:
然后就在cmd中运行建表:
php artisan migrate
可以发现在laravel数据库中建好了三个表,分别是migrations, password_resets, users
Eloquent 是 Laravel 的 'ORM',即 'Object Relational Mapping',对象关系映射。ORM 的出现是为了帮我们把对数据库的操作变得更加地方便。
Eloquent 让一个 'Model类' 对应一张数据库表,并且在底层封装了很多 'function',可以让 Model 类非常方便地调用。
定义一个Eloquent模型
方法一:
class Article extends Model {}
方法二:
php artisan make:model Article
创建完能在app文件夹下发现有一个Article.php生成,
若没有特别指定,系统会默认自动对应名称为「类名称的小写复数形态」的数据库表。所以会对应上面migration产生的articles table;
- 进入命令行交互界面: - php artisan tinker 
- 实例化一个类 - $article=new app\Article; 
- 用create实现一次性创建: - $article=App\Article::create(['title'=>'second title','content'=>'second content', 'published_at'=>Carbon\Carbon::now()]); 
这时执行会报一个错_MassAsignmentException with message 'title'_
因为Laravel默认这些字段不可以直接填充,这时需要到Article.php的文件中加入$fillable属性。
protected $fillable=['title','content','published_at'];
然后在执行,好的失败了……还是exception,再看视频原来还要退出再进入tinker。
ok,继续报错:PHP Fatal error: Class 'app\Article' not found in eval()'d code on line 1
记得之前实例化的时候就一直报这个错,不知怎么又好了……
然后AOL搜了一圈,说在app前加\也不对,然后改成App\Article就对了,刷新数据库也看到创建article成功了。不知什么原理,文件夹名我看了是小写没错。
- 更新数据 - $article->update(['title'=>'change title']); 
- 删除model,Laravel提供了软删除,模型类中加入: - use SoftDeletes; class Article extends Model{ protected $dates = ['deleted_at']; } 
- existing table增加字段 
这时发现了一个问题,就是表中没有delete_at这个字段,如果直接用rollback所有数据也就没有了。这时候就再新建一个migration文件。
php artisan make:migration add_delete_at_column_to_articles --table=articles
然后再去命名的migration文件中修改,up方法添加:
$table->softDeletes();
down方法中添加:
 $table->dropcolumn('delete_at');
最后再执行就ok~通过这样还可以删除column,修改字段长度等,database:migration中有详细说明。
 
  
  
  
  
 