服务器是Nginx的 照着文档通过composer安装了一个非最新版本 (5.0)那版。
开始是看中文文档,死活安装不上,后来看了英文文档发现这个版本的安装说明是不同的
按照这个命令 才能正确地安装
代码语言:javascript复制composer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist
安装完成后发现首页也能跑了,但是其它路由都是404错误
发现原来需要给ngix配置增加一句话,其实英文文档下面就提到了,只是当时没仔细看文档。
代码语言:javascript复制location / { try_files $uri $uri/ /index.php?$query_string; }
我的完整的ngix配置文件
代码语言:javascript复制server {
listen 80;
server_name lv.aliyun lv.hihualang.com;
index index.html index.htm index.php;
root /alidata/www/lv/5/public;
location ~ .*.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*.(js|css)?$
{
expires 1h;
}
include /alidata/server/nginx/conf/rewrite/phpwind.conf;
access_log /alidata/log/nginx/access/phpwind.log;
}
Laravel 5 下使用 HTML 和 Form
说明
Laravel 5 因为采用了另一套不同的架构, 而把 HTML 和 Form 类从核心里面移除.
如果还想继续使用这两个类的话, 可以使用以下方法:
添加到 composer.json
代码语言:javascript复制"require": {
"illuminate/html": "~5.0"
},
更新
代码语言:javascript复制composer update
代码语言:javascript复制更新完以后,打开 /config/app.php
在
代码语言:javascript复制providers
数组下面添加
代码语言:javascript复制'IlluminateHtmlHtmlServiceProvider',
代码语言:javascript复制aliases
数组下面添加
代码语言:javascript复制'Form' => 'IlluminateHtmlFormFacade',
'HTML' => 'IlluminateHtmlHtmlFacade'
这样就安装好啦!
使用方法
以前写法是这样的
代码语言:javascript复制{{Form::open()}}
{{Form::close()}}
现在变成这样的了
代码语言:javascript复制{!! Form::open() !!}
{!! Form::close() !!}
后来发现在laravel5 下面用 html即使按照上面设置 还是有问题, 根本搞不定,所以还是放弃了在laravel5下面使用html和form的想法,干脆还是先用laravel4吧,毕竟教程也多。
数据迁移时,系统报错说是基表migrations不存在, 这时候需要先执行命令生成migrations表
代码语言:javascript复制$ php artisan migrate:install
然后再执行
代码语言:javascript复制$ php artisan migrate
参考http://laravelbook.com/laravel-migrations-managing-databases/
Class 'Carbon' not found
只要在/app/config/app.php 文件下增加一条别名'aliases'
代码语言:javascript复制'Carbon' => 'CarbonCarbon',
即可
controller里的 $this->beforeFilter on 的写法不起作用,
改用 only
例如
代码语言:javascript复制$this->beforeFilter('guest', ['only' => ['getLogin', 'getRegister']]);
原因说是:The 'on' is actually for specifying a HTTP verb. Try this instead:
发现在laravel中写一个带参数的路由 但希望把逻辑代码都写道对应的controller里是一件很难的事情,但有个技巧 你可以直接在代码区域new一个controller 返回这个controller的方法,就可以参数传入了
代码语言:javascript复制Route::get('{model}/lists', function ($model) {
$className = 'AppHttpControllers\'.ucfirst($model).'Controller';
$obj = new $className;
return $obj->lists();
});
后来发现其实不用这么做 laravel自带的restful方式,轻松创建带参数的路由 标准化增删该查 只要定义一行路由
Now we can register a resourceful route to the controller:
代码语言:javascript复制Route::resource('photo', 'PhotoController');
This single route declaration creates multiple routes to handle a variety of RESTful actions on the photo resource. Likewise, the generated controller will already have stubbed methods for each of these actions with notes informing you which URIs and verbs they handle.
Actions Handled By Resource Controller
Verb | Path | Action | Route Name |
---|---|---|---|
GET | /resource | index | resource.index |
GET | /resource/create | create | resource.create |
POST | /resource | store | resource.store |
GET | /resource/{resource} | show | resource.show |
GET | /resource/{resource}/edit | edit | resource.edit |
PUT/PATCH | /resource/{resource} | update | resource.update |
DELETE | /resource/{resource} | destroy | resource.destroy |
执行 php artisan generate:model xxx时报错
[InvalidArgumentException] There are no commands defined in the "generate" namespace.
需要安装这个包 http://www.cnsecer.com/6696.html
执行代码的过程中又发现 composer 报 zlib_decode(): data error
解决办法:执行 composer self-update 即可
发现用命令安装总是报错,直接放弃 ,去官网直接下载包
https://github.com/JeffreyWay/Laravel-4-Generators
代码语言:javascript复制
可以通过命令下在一个完整包看看代码组织形式
$ git clone http://git.shiyanlou.com/shiyanlou/laravel-blog-2
替换 vendorcomposerautoload_classmap.php 相关部分
拷贝 vendorway文件包
修改app.php
默认的时区需要改
‘timezone’ => ‘Asia/Shanghai’,//默认值嗯UTC