laravel的那些坑

服務器是Nginx的 照着文檔經過composer安裝了一個非最新版本 (5.0)那版。 php

開始是看中文文檔,死活安裝不上,後來看了英文文檔發現這個版本的安裝說明是不一樣的  css

按照這個命令 才能正確地安裝 html

composer create-project laravel/laravel {directory} "~5.0.0" --prefer-dist

安裝完成後發現首頁也能跑了,可是其它路由都是404錯誤 nginx

發現原來須要給ngix配置增長一句話,其實英文文檔下面就提到了,只是當時沒仔細看文檔。 laravel


location / { try_files $uri $uri/ /index.php?$query_string; }

個人完整的ngix配置文件 git

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 類從核內心面移除. github

若是還想繼續使用這兩個類的話, 可使用如下方法: shell

添加到 composer.json

"require": {

    "illuminate/html": "~5.0"

},

更新

composer update

更新完之後,打開 /config/app.php

providers
數組下面添加
'Illuminate\Html\HtmlServiceProvider',

aliases
數組下面添加
'Form'      => 'Illuminate\Html\FormFacade',

'HTML'      => 'Illuminate\Html\HtmlFacade'

這樣就安裝好啦!

使用方法

之前寫法是這樣的 
{{Form::open()}}



{{Form::close()}}

如今變成這樣的了
{!! Form::open() !!}



{!! Form::close() !!}

後來發如今laravel5 下面用 html即便按照上面設置 仍是有問題, 根本搞不定,因此仍是放棄了在laravel5下面使用html和form的想法,乾脆仍是先用laravel4吧,畢竟教程也多。 json


數據遷移時,系統報錯說是基表migrations不存在, 這時候須要先執行命令生成migrations表 數組


$ php artisan migrate:install
而後再執行 
$ php artisan migrate

參考http://laravelbook.com/laravel-migrations-managing-databases/


Class 'Carbon' not found

只要在/app/config/app.php 文件下增長一條別名'aliases'

'Carbon' => 'Carbon\Carbon',

便可


controller裏的 $this->beforeFilter on 的寫法不起做用,

改用 only 

例如 

$this->beforeFilter('guest', ['only' => ['getLogin', 'getRegister']]);

緣由說是:The 'on' is actually for specifying a HTTP verb. Try this instead:


發如今laravel中寫一個帶參數的路由 但但願把邏輯代碼都寫道對應的controller裏是一件很難的事情,但有個技巧 你能夠直接在代碼區域new一個controller 返回這個controller的方法,就能夠參數傳入了 

Route::get('{model}/lists', function ($model) {
  $className = 'App\Http\Controllers\\'.ucfirst($model).'Controller';
  $obj = new $className;
  return $obj->lists();
});


後來發現其實不用這麼作 laravel自帶的restful方式,輕鬆建立帶參數的路由 標準化增刪該查 只要定義一行路由


Now we can register a resourceful route to the controller:

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

 

能夠經過命令下在一個完整包看看代碼組織形式

 $ git clone http://git.shiyanlou.com/shiyanlou/laravel-blog-2

替換 \vendor\composer\autoload_classmap.php 相關部分

拷貝 \vendor\way文件包

修改app.php



默認的時區須要改

‘timezone’ => ‘Asia/Shanghai’,//默認值嗯UTC

相關文章
相關標籤/搜索