安裝;php
windows安裝css
Laravel 框架有一些系統上的需求:html
PHP 版本 >= 5.4前端
Mcrypt PHP 擴展mysql
OpenSSL PHP 擴展jquery
Mbstring PHP 擴展linux
Tokenizer PHP 擴展nginx
都不想安裝的能夠從https://github.com/overtrue/latest-laravel 這裏下載大神整理好的,解壓便可使用laravel
首先等安裝cpmposer, 提示openssl錯誤的打開PHP.INI配置文件將extension=php_openssl.dll 前面的註釋去掉,大概在第887行。git
copmposer安裝過程就不說了。
下面開始Laravel 5安裝過程,github有下載,這裏分享個網盤鏈接:http://pan.baidu.com/s/1dD50dWH
下載後解壓,爲了方便你能夠解壓到網站根目錄下。我這裏解壓到F:/laravel [固然了,這不是個人根目錄,須要配置虛擬主機]。
因爲衆所周知的緣由國內安裝composer,laravel比較慢,推薦使用鏡像安裝。
修改laravel目錄的composer.json文件
在末尾結束括號前加上:
, "repositories": [ {"type": "composer", "url": "http://comproxy.cn/repo/packagist"}, {"packagist": false} ]
若不能用試試http://packagist.phpcomposer.com
在文件夾內單擊鼠標右鍵選擇安裝
幾分鐘後就安裝完成啦!
這時會發現目錄下多了個vendor文件夾。
laravel的默認首頁是server.php,須要配置下,打開httpd.conf配置文件
找到[大概第249行如下]
<IfModule dir_module> DirectoryIndex index.html index.php index.htm l.php server.php </IfModule>
加上 server.php重啓便可。
試試去瀏覽器打開http://t.com 試看看, 以你本身的安裝爲準。
到此爲止安裝成功了,打開慢的緣由是使用了谷歌字體, 可使用國內CDN,找到F:\laravel\resources\views文件夾,打開welcome.blade.php文件,將第五行改成 <link href='//ajax.useso.com/css?family=Lato:100' rel='stylesheet' type='text/css'>
360前端公共庫:http://libs.useso.com/
接着去試試寫個方法,
找到F:\laravel\app\Http文件夾,打開routes.php,加上
/* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It's a breeze. Simply tell Laravel the URIs it should respond to | and give it the controller to call when that URI is requested. | */ Route::get('/', 'WelcomeController@index'); Route::get('home', 'HomeController@index'); Route::controllers([ 'auth' => 'Auth\AuthController', 'password' => 'Auth\PasswordController', ]); Route::get('hi', function(){ return "hi"; });
打開瀏覽器輸入http://t.com/public/hi
試看看,這就是路由了。
如需直接訪問到public項目文件夾能夠配置vhost
<VirtualHost *:80> DocumentRoot "F:\laravel\public" ServerName t.com ServerAlias t1.domain.com <Directory "F:\laravel> Options FollowSymLinks ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory></VirtualHost>
2.linux安裝
laravel必須PHP>5.4支持mcrypt。
從https://github.com/overtrue/latest-laravel 這裏下載大神整理好的,解壓便可使用
nginx僞靜態:[我這裏用的是LNMP]
server { listen 80; #listen [::]:80; server_name laravel.zy62.com; index index.html index.htm index.php default.html default.htm default.php; root /home/wwwroot/laravel.domain.com/public; include other.conf; #error_page 404 /404.html; location ~ .*\.(php|php5)?$ { try_files $uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } if (!-d $request_filename) { rewrite ^/(.+)/$ /$1 permanent; } # removes trailing "index" from all controllers if ($request_uri ~* index/?$) { rewrite ^/(.*)/index/?$ /$1 permanent; } # unless the request is for a valid file (image, js, css, etc.), send to bootstrap if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?/$1 last; break; } access_log /home/wwwlogs/laravel.domain.com.log access; }
include fcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param REQUEST_URI $request_uri; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; # PHP only, required if PHP was built with --enable-force-cgi-redirect fastcgi_param REDIRECT_STATUS 200;
ERROR: An another FPM instance seems to already listen on /tmp/php-cgi-714ms.com.sock
解決辦法:
/root/lnmp reload
數據庫配置:\config\database.php
'mysql' => [ 'driver' => 'mysql', 'host' => 'localhost', //'host' => env('DB_HOST', 'localhost'), 'database' => 'test', //'database' => env('DB_DATABASE', 'forge'), 'username' => 'root', //'username' => env('DB_USERNAME', 'forge'), 'password' => 'qaz123', //'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ],
視圖,傳值:
路由:
Route::get('/hi',function(){ //echo 123; return View::make('hi')->with('name','laravel');//way1 });
在laravel\resources\views下新建hi.blade.php文件
<?php ?> <html> <head> <meta charset="UTF-8" /> <title>test</title> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script src="http://libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script> <link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div> <h1>laravel view</h1> <p><?php echo $name; ?></p> </div> </body> </html>
視圖傳值方式:
return View::make('hi')->with('name','laravel');//way1
2.魔術方法
return View::make('hi')->withName('laravel');
$data['name']='laravel'; return View::make('hi',$data);
路由傳值限制:
那麼如今個人博客有一堆文章,我想經過地址 http://yourdomain/article/1 訪問 id 爲 1 的文章,經過 http://yourdomain/article/2 訪問 id 爲 2 的文章怎麼辦?
Route::get('article/{id}', function($id) { return 'Article:' . $id; });
可是,假若有這樣一種狀況,有不少地方都須要 id 做爲參數,id 大都是這種數字,咱們確定不但願每個路由規則都要寫一次 where 方法來設置 id 的匹配規則。這時候能夠經過這樣一個方法來實現:
Route::pattern('id', '[0-9]+');
資源控制器:
命令行建立:
php artisan make:controller ArticleController
就能夠建立一個名爲 ArticleController 的資源控制器,文件默認在 app/Http/Controllers 下。咱們打開 ArticleController.php,發現裏面已經寫好了許多方法,好比 index、create、show 等等。分別是什麼意思?如何在路由定義才能訪問到?
咱們若是要在路由裏定義一個資源控制器只須要一條:
Route::resource('article', 'ArticleController');
這個時候,確定有人會疑惑,那訪問的地址規則呢?若是你已經瞭解了 RESTful,再去閱讀如下官方文檔,基本就已經明白了。我就着上述的控制器、路由,來講明。先看一張表:
請求方法 | 請求 URI | 對應的控制器方法 | 表明的意義 |
GET | /article | index | 索引/列表 |
GET | /article/create | create | 建立(顯示錶單) |
POST | /article | store | 保存你建立的數據 |
GET | /article/{id} | show | 顯示對應id的內容 |
GET | /article/{id}/edit | edit | 編輯(顯示錶單) |
PUT/PATCH | /article/{id} | save | 保存你編輯的數據 |
DELETE | /article/{id} | destroy | 刪除 |
當我訪問地址 http://yourdomain/article ,至關於訪問控制器 ArticleController 的 index 方法。
當我訪問地址 http://yourdomain/article/create ,就會訪問到 create 方法。
當我經過 POST 提交數據至地址 http://yourdomain/article,至關於由 store 方法處理。
修改下show方法:
/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id) { // echo $id; }
發送郵件:
先配置發送郵件帳號信息,config/mail.php
public function getPage() { $data = ['email'=>'username@example.com', 'name'=>'rainwsy'] ; Mail::send ( 'hi', $data, function ($message) use($data) { $message->to ( $data ['email'], $data ['name'] )->subject ( '歡迎註冊咱們的網站,請激活您的帳號!' ); } ); }
hi是模板文件hi.blade.php
數據庫查詢:
namespace App\Http\Controllers; use Request; use View; use DB; $rs = DB::select ( "select * from cf_user limit 10" ); // print_r($rs); echo $rs [0]->user;
阿里雲OSS上傳文件
安裝
將如下內容增長到 composer.json:
require: { "johnlui/aliyun-oss": "dev-master" }
use JohnLui\AliyunOSS\AliyunOSS; use DateTime; public function getFile(){ $oss = AliyunOSS::boot('http://oss-cn-beijing.aliyuncs.com', 'accesskey', 'secret'); //青島則爲 oss-cn-qingdao,以此類推,改爲你本身的 // 設置 Bucket $oss = $oss->setBucket('bucket'); // 上傳一個文件(示例文件爲 public 目錄下的 favicon.ico) // 兩個參數:資源名稱、文件路徑 $oss->uploadFile('favicon.ico', public_path('favicon.ico')); // 從服務器獲取這個資源的 URL 並打印 // 兩個參數:資源名稱、過時時間 echo $oss->getUrl('favicon.ico', new DateTime("+1 day")); }
echo \Route::current()->getActionName();