laravel5安裝 數據庫配置 模板 路由

安裝;php

  1. 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"));
	}


laravel輸出當前操做/方法名:

echo \Route::current()->getActionName();
相關文章
相關標籤/搜索