成功案例

最后更新于:2022-04-01 23:13:47

# 案例 - [VDemocracy.tw - 群眾募資‧群眾集資網站 Crowdfunding Platform in Taiwan](http://www.vdemocracy.tw/) - [Builtwithlaravel.com](http://builtwithlaravel.com/)
';

主機

最后更新于:2022-04-01 23:13:45

';

編輯開發

最后更新于:2022-04-01 23:13:42

';

教學網站

最后更新于:2022-04-01 23:13:40

# 教學網站 ### 英文 - [Laravel Recipes](http://laravel-recipes.com/) - [Laravel-Tricks.com](http://laravel-tricks.com/) - [Web development, design, and other nerdy topics! | Dayle Rees](http://daylerees.com/codebright) - [Laravel Book](http://laravelbook.com/) - [PHP: The Right Way](http://www.phptherightway.com/) # 中文 - [Laravel 初體驗 - 實作 Blog 系統 | Laravel Dojo](http://www.laravel-dojo.com/courses/laravel4-first-class) - [PHP: The Right Way 繁體中文](http://laravel-taiwan.github.io/php-the-right-way/)
';

教學影片

最后更新于:2022-04-01 23:13:38

';

服務工具

最后更新于:2022-04-01 23:13:35

';

套件

最后更新于:2022-04-01 23:13:33

# 套件 ### 清單 - [Packalyst :: Packages for Laravel](http://packalyst.com/) - [Packagist - tag laravel](https://packagist.org/search/?tags=laravel) - [Laravel Collective](http://laravelcollective.com/) - [Arsenal :: Cartalyst](https://cartalyst.com/) - [Built with Laravel](http://builtwithlaravel.com/) ### 時間 - [Carbon - A simple PHP API extension for DateTime.](http://carbon.nesbot.com/) ### 編輯器 - [Laravel Markdown](https://github.com/GrahamCampbell/Laravel-Markdown) ### 檔案 - [Laravel Flysystem](https://github.com/GrahamCampbell/Laravel-Flysystem) ### 除錯 - [The missing tail command for Laravel 5](https://github.com/freekmurze/laravel-tail) - [Laravel Exceptions](https://github.com/GrahamCampbell/Laravel-Exceptions) - [Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar) ### 條碼 - [Simple QrCode](https://github.com/SimpleSoftwareIO/simple-qrcode) ### 社群 - [Laravel GitHub](https://github.com/GrahamCampbell/Laravel-GitHub) ### CMS - [Wardrobe](https://github.com/wardrobecms/wardrobe) - [Bootstrap CMS](https://github.com/BootstrapCMS/CMS) - [TypiCMS](https://github.com/TypiCMS/Base) - [PHPHub](https://github.com/summerblue/phphub) - [Cachet](https://github.com/cachethq/Cachet) - [Paperwork](https://github.com/twostairs/paperwork) ### Open Source - [laravel-tricks](https://github.com/CodepadME/laravel-tricks)
';

文章

最后更新于:2022-04-01 23:13:31

# 文章 ### 部落格 - [MattStauffer.co](https://mattstauffer.co/blog/) ### 文件 - [Awesome Laravel](https://github.com/chiraggude/awesome-laravel) ### 除錯 - [Debugging Queries in Laravel](https://scotch.io/tutorials/debugging-queries-in-laravel) ### IoC - [神奇的服务容器](https://phphub.org/topics/789) ### 事件 - [Step by Step Guide to Installing Socket.io and Broadcasting Events with Laravel 5.1](https://laracasts.com/discuss/channels/general-discussion/step-by-step-guide-to-installing-socketio-and-broadcasting-events-with-laravel-51)
';

文件

最后更新于:2022-04-01 23:13:29

# 文件 ### Laravel - [A Laravel 5 Boilerplate Project](https://github.com/rappasoft/laravel-5-boilerplate) - [Laravel Book](http://laravelbook.com/) - [Web development, design, and other nerdy topics! | Dayle Rees](http://daylerees.com/codebright) - [Laravel-簡潔、優雅的PHP開發框架(PHP Web Framework)。 - Laravel中文網Laravel中國社區](http://www.golaravel.com/) - [Simple Laravel ♥ Scotch](http://scotch.io/series/simple-laravel) - [Awesome Laravel](#) - [Curso de Laravel 5 en español desde cero | styde.net](https://styde.net/laravel-5/) - [Laravel Collective](http://laravelcollective.com/) ### PHP - [Awesome PHP](https://github.com/ziadoz/awesome-php) - [PHP-Tools](https://github.com/asika32764/PHP-Tools) - [SitePoint PHP – Learn PHP, MySQL, SOAP & more](http://www.sitepoint.com/php/) ### 設計模式 - [PSR 繁體中文](https://github.com/laravel-taiwan/fig-standards/tree/master/accepted/zh-TW) ### 安裝 - [How to Setup Laravel 4 - Tuts+ Code Tutorial](http://code.tutsplus.com/tutorials/how-to-setup-laravel-4--net-28614) ### 指令函式 - [Laravel Cheat Sheet](http://cheats.jesse-obrien.ca/) - [LaravelSnippets.com](http://laravelsnippets.com/) - [Laravel-Tricks.com](http://laravel-tricks.com/)
';

工作

最后更新于:2022-04-01 23:13:26

';

會議議程

最后更新于:2022-04-01 23:13:24

';

社群

最后更新于:2022-04-01 23:13:22

';

官方

最后更新于:2022-04-01 23:13:20

# 官方學習資源 ### Framework - [Laravel - The PHP Framework For Web Artisans](http://laravel.com/) - [Lumen - PHP Micro-Framework By Laravel](http://lumen.laravel.com/) ### 最新消息 - [Laravel News](https://laravel-news.com/) - [Laravel Weekly](http://laravelweekly.com/) ### 文件 (Document) - [Welcome! - Laravel PHP Framework](http://laravel.com/) - [Laravel wiki](http://wiki.laravel.io/Laravel.io_Wiki) ### API - [Laravel 5 API Documentation](http://laravel.com/api/5.0/) ### 套件清單 - [Packalyst :: Packages for Laravel](http://packalyst.com/) - [Packagist - tag laravel](https://packagist.org/search/?tags=laravel) - [Laravel Collective](http://laravelcollective.com/) - [Arsenal :: Cartalyst](https://cartalyst.com/) ### 作者 - [Taylor Otwell | Twitter](https://twitter.com/taylorotwell)
';

學習資源

最后更新于:2022-04-01 23:13:17

';

Laravel 5.1 目錄結構異動

最后更新于:2022-04-01 23:13:15

# Laravel 5.1 目錄結構異動 從 Laravel 5.0 升級到 Laravel 5.1 時,app 的目錄結構有做一些小異動,異動如下 - app/Command => app/Jobs - app/Handlers => app/Listeners 根據官方說法,這樣的命名比較能夠識別出該目錄程式的作用是什麼 - 命令(Command) => 工作(Jobs) - 處理器(Handlers) => 事件傾聽器(Listeners) 在從 5.0 升級至 5.1 時,記得將這幾個目錄做重新命名喔~ ### 參考資料 - [Directory Changes - Laracast](https://laracasts.com/series/whats-new-in-laravel-5-1/episodes/7) - [Release Notes - laravel.tw](http://laravel.tw/docs/5.1/releases)
';

變更專案目錄名稱導致 View 無法讀取

最后更新于:2022-04-01 23:13:13

# 變更專案目錄名稱導致 View 無法讀取 在想要變更原先 Laravel 5 的專案目錄時,Laravel 5 會告訴你你沒辦法讀取到 view 的目錄,看了錯誤的訊息發現這個 view 的目錄是在原先舊專案的目錄名稱下 錯誤訊息長得像這樣: ~~~ InvalidArgumentException in FileViewFinder.php line 137: View [welcome] not found. ~~~ 這個原因是 Laravel 5 會將設定檔作快取存下來到 `bootstrap/cache/config.php` 目錄下面,而這個快取的檔案是原本舊專案的設定,所以我們必須要清除這個快取,才可以讓 Laravel 5 可以讀取到新的設定,這時候我們可以在 artisan 下這些指令,清除原先專案的快取設定: ~~~ $ php artisan config:clear $ php artisan view:clear ~~~ 執行清除這些快取資料後,我們就可以正常的的獨到新專案目錄下的 view 資料摟!
';

Call to undefined method getCachedCompilePath()

最后更新于:2022-04-01 23:13:11

# Call to undefined method getCachedCompilePath() 我在使用 Laravel 5.0.x 時,使用 `composer update` 去更新目前的套件時,跳出了這樣的訊息: (PS:也有人在執行 `php artisan clear-compiled` 出現這樣的狀況) > PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath() 這個是因為 Laravel 5 在執行時會把整個 Framework 編譯到 `storage/framework/compiled.php`,若這個檔案已產生,Laravel 5 在更新套件時執行一些相關 Laravel 的功能時,會預設執行 `compiled.php` 檔案中的類別函式,而更新的檔案中有 `getCachedCompilePath()` 這個方法,所以呼叫時 Laravel 會在舊的 `compiled.php` 找不到這個方法 **_解決方式_** 直接把 `storage/framework/compiled.php` 刪除即可,Laravel 5 會自動重新產生這個 `compiled.php` 檔案! ### 參考資料 - [RuntimeException on fresh install](https://laracasts.com/discuss/channels/general-discussion/runtimeexception-on-fresh-install?page=1)
';

其他常見問題

最后更新于:2022-04-01 23:13:08

# 其他常見問題 這裏會介紹一些在開發 Laravel 5 遇到的常見問題 - [Call to undefined method getCachedCompilePath()](#)
';

設計模式

最后更新于:2022-04-01 23:13:06

# 設計模式套件 這裏會介紹一些 Laravel 5 不錯的設計模式套件 ### Entity 資料顯示 - [laracasts/presenter](https://github.com/laracasts/Presenter)
';

Carbon

最后更新于:2022-04-01 23:13:04

# Carbon 時間套件 Carbon 是一個很方便的轉換時間的工具,可以很方便地將時間進行轉換,取得我們想要的特定日期或格式 ### 安裝 Laravel 5 預設就會安裝 Carbon 套件,若沒有安裝的話可以透過下列的方式進行安裝: ~~~ # 使用 Composer 下載 Carbon $ composer require nesbot/carbon ~~~ ~~~ toDateTimeString(); // 1975-05-21 22:00:00 // 從時間戳記建立 echo Carbon::createFromTimeStamp(-1)->toDateTimeString(); // 1969-12-31 18:59:59 echo Carbon::createFromTimeStamp(-1, 'Europe/London')->toDateTimeString(); // 1970-01-01 00:59:59 echo Carbon::createFromTimeStampUTC(-1)->toDateTimeString(); // 1969-12-31 23:59:59 ~~~ ### 轉換日期 ~~~ year); // int(2012) var_dump($dt->month); // int(9) var_dump($dt->day); // int(5) var_dump($dt->hour); // int(23) var_dump($dt->minute); // int(26) var_dump($dt->second); // int(11) var_dump($dt->micro); // int(123789) var_dump($dt->dayOfWeek); // int(3) var_dump($dt->dayOfYear); // int(248) var_dump($dt->weekOfMonth); // int(1) var_dump($dt->weekOfYear); // int(36) var_dump($dt->daysInMonth); // int(30) var_dump($dt->timestamp); // int(1346901971) var_dump(Carbon::createFromDate(1975, 5, 21)->age); // int(39) calculated vs now in the same tz var_dump($dt->quarter); // int(3) // 回傳與 UTC 差異的秒數 var_dump(Carbon::createFromTimestampUTC(0)->offset); // int(0) var_dump(Carbon::createFromTimestamp(0)->offset); // int(-18000) // 回傳與 UTC 差異的時數 var_dump(Carbon::createFromTimestamp(0)->offsetHours); // int(-5) // 找出當天日否有日光節約時間 var_dump(Carbon::createFromDate(2012, 1, 1)->dst); // bool(false) var_dump(Carbon::createFromDate(2012, 9, 1)->dst); // bool(true) // 判斷指定的的時區是否與預設的時區相同 var_dump(Carbon::now()->local); // bool(true) var_dump(Carbon::now('America/Vancouver')->local); // bool(false) // 判斷是否為 UTC 的時區時間 var_dump(Carbon::now()->utc); // bool(false) var_dump(Carbon::now('Europe/London')->utc); // bool(true) var_dump(Carbon::createFromTimestampUTC(0)->utc); // bool(true) // 取得時區實例 echo get_class(Carbon::now()->timezone); // DateTimeZone echo get_class(Carbon::now()->tz); // DateTimeZone // 取得時區實例的名稱 echo Carbon::now()->timezoneName; // America/Toronto echo Carbon::now()->tzName; // America/Toronto ~~~ ### 設定時間資料 ~~~ year = 1975; $dt->month = 13; // 年份會強制 +1,且月份變為 1 月 $dt->month = 5; $dt->day = 21; $dt->hour = 22; $dt->minute = 32; $dt->second = 5; $dt->timestamp = 169957925; // 這個設定不會變更時區 // 透過字串或是 DateTimeZone 實例去設定時區 $dt->timezone = new DateTimeZone('Europe/London'); $dt->timezone = 'Europe/London'; $dt->tz = 'Europe/London'; // 鏈結設定方式 $dt->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString(); $dt->setDate(1975, 5, 21)->setTime(22, 32, 5)->toDateTimeString(); $dt->setDateTime(1975, 5, 21, 22, 32, 5)->toDateTimeString(); $dt->timestamp(169957925)->timezone('Europe/London'); $dt->tz('America/Toronto')->setTimezone('America/Vancouver'); ~~~ ### 格式化時間資料 ~~~ toDateTimeString() == $dt); // bool(true) => uses __toString() echo $dt->toDateString(); // 1975-12-25 echo $dt->toFormattedDateString(); // Dec 25, 1975 echo $dt->toTimeString(); // 14:15:16 echo $dt->toDateTimeString(); // 1975-12-25 14:15:16 echo $dt->toDayDateTimeString(); // Thu, Dec 25, 1975 2:15 PM // 仍可以使用 format() 函式 echo $dt->format('l jS \\of F Y h:i:s A'); // Thursday 25th of December 1975 02:15:16 PM // 常用的時間格式 echo $dt->toAtomString(); // in 1 Jahr echo $dt->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST echo $dt->toIso8601String(); // 1975-12-25T14:15:16-0500 echo $dt->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 echo $dt->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST echo $dt->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 echo $dt->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toRfc3339String(); // 1975-12-25T14:15:16-05:00 echo $dt->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toW3cString(); // 1975-12-25T14:15:16-05:00 ~~~ ### 比較時間差異 ~~~ tzName; // America/Toronto $first = Carbon::create(2012, 9, 5, 23, 26, 11); $second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver'); echo $first->toDateTimeString(); // 2012-09-05 23:26:11 echo $first->tzName; // America/Toronto echo $second->toDateTimeString(); // 2012-09-05 20:26:11 echo $second->tzName; // America/Vancouver // 大於、等於、小於 var_dump($first->eq($second)); // bool(true) var_dump($first->ne($second)); // bool(false) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(true) var_dump($first->lt($second)); // bool(false) var_dump($first->lte($second)); // bool(true) $first->setDateTime(2012, 1, 1, 0, 0, 0); $second->setDateTime(2012, 1, 1, 0, 0, 0); // Remember tz is 'America/Vancouver' var_dump($first->eq($second)); // bool(false) var_dump($first->ne($second)); // bool(true) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(false) var_dump($first->lt($second)); // bool(true) var_dump($first->lte($second)); // bool(true) // 時間區間比較 $first = Carbon::create(2012, 9, 5, 1); $second = Carbon::create(2012, 9, 5, 5); var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false) // 時間大小比較 $dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->min($dt2); // 2012-01-01 00:00:00 $dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->max($dt2); // 2014-01-30 00:00:00 // now is the default param $dt1 = Carbon::create(2000, 1, 1, 0, 0, 0); echo $dt1->max(); // 時間差異運算 echo Carbon::now('America/Vancouver')->diffInSeconds(Carbon::now('Europe/London')); // 0 $dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto'); $dtVancouver = Carbon::createFromDate(2000, 1, 1, 'America/Vancouver'); echo $dtOttawa->diffInHours($dtVancouver); // 3 echo $dtOttawa->diffInHours($dtVancouver, false); // 3 echo $dtVancouver->diffInHours($dtOttawa, false); // -3 $dt = Carbon::create(2012, 1, 31, 0); echo $dt->diffInDays($dt->copy()->addMonth()); // 31 echo $dt->diffInDays($dt->copy()->subMonth(), false); // -31 $dt = Carbon::create(2012, 4, 30, 0); echo $dt->diffInDays($dt->copy()->addMonth()); // 30 echo $dt->diffInDays($dt->copy()->addWeek()); // 7 $dt = Carbon::create(2012, 1, 1, 0); echo $dt->diffInMinutes($dt->copy()->addSeconds(59)); // 0 echo $dt->diffInMinutes($dt->copy()->addSeconds(60)); // 1 echo $dt->diffInMinutes($dt->copy()->addSeconds(119)); // 1 echo $dt->diffInMinutes($dt->copy()->addSeconds(120)); // 2 echo $dt->addSeconds(120)->secondsSinceMidnight(); // 120 ~~~ ### 時間狀態 ~~~ isWeekday(); $dt->isWeekend(); $dt->isYesterday(); $dt->isToday(); $dt->isTomorrow(); $dt->isFuture(); $dt->isPast(); $dt->isLeapYear(); $dt->isSameDay(Carbon::now()); $born = Carbon::createFromDate(1987, 4, 23); $noCake = Carbon::createFromDate(2014, 9, 26); $yesCake = Carbon::createFromDate(2014, 4, 23); var_dump($born->isBirthday($noCake)); // bool(false) var_dump($born->isBirthday($yesCake)); // bool(true) ~~~ ### 時間運算 ~~~ toDateTimeString(); // 2012-01-31 00:00:00 echo $dt->addYears(5); // 2017-01-31 00:00:00 echo $dt->addYear(); // 2018-01-31 00:00:00 echo $dt->subYear(); // 2017-01-31 00:00:00 echo $dt->subYears(5); // 2012-01-31 00:00:00 echo $dt->addMonths(60); // 2017-01-31 00:00:00 echo $dt->addMonth(); // 2017-03-03 00:00:00 equivalent of $dt->month($dt->month + 1); so it wraps echo $dt->subMonth(); // 2017-02-03 00:00:00 echo $dt->subMonths(60); // 2012-02-03 00:00:00 echo $dt->addDays(29); // 2012-03-03 00:00:00 echo $dt->addDay(); // 2012-03-04 00:00:00 echo $dt->subDay(); // 2012-03-03 00:00:00 echo $dt->subDays(29); // 2012-02-03 00:00:00 echo $dt->addWeekdays(4); // 2012-02-09 00:00:00 echo $dt->addWeekday(); // 2012-02-10 00:00:00 echo $dt->subWeekday(); // 2012-02-09 00:00:00 echo $dt->subWeekdays(4); // 2012-02-03 00:00:00 echo $dt->addWeeks(3); // 2012-02-24 00:00:00 echo $dt->addWeek(); // 2012-03-02 00:00:00 echo $dt->subWeek(); // 2012-02-24 00:00:00 echo $dt->subWeeks(3); // 2012-02-03 00:00:00 echo $dt->addHours(24); // 2012-02-04 00:00:00 echo $dt->addHour(); // 2012-02-04 01:00:00 echo $dt->subHour(); // 2012-02-04 00:00:00 echo $dt->subHours(24); // 2012-02-03 00:00:00 echo $dt->addMinutes(61); // 2012-02-03 01:01:00 echo $dt->addMinute(); // 2012-02-03 01:02:00 echo $dt->subMinute(); // 2012-02-03 01:01:00 echo $dt->subMinutes(61); // 2012-02-03 00:00:00 echo $dt->addSeconds(61); // 2012-02-03 00:01:01 echo $dt->addSecond(); // 2012-02-03 00:01:02 echo $dt->subSecond(); // 2012-02-03 00:01:01 echo $dt->subSeconds(61); // 2012-02-03 00:00:00 ~~~ ### 人類閱讀時間格式 ~~~ subDays(5)->diffForHumans(); // 5 days ago echo Carbon::now()->diffForHumans(Carbon::now()->subYear()); // 1 year after $dt = Carbon::createFromDate(2011, 8, 1); echo $dt->diffForHumans($dt->copy()->addMonth()); // 1 month before echo $dt->diffForHumans($dt->copy()->subMonth()); // 1 month after echo Carbon::now()->addSeconds(5)->diffForHumans(); // 5 seconds from now echo Carbon::now()->subDays(24)->diffForHumans(); // 3 weeks ago echo Carbon::now()->subDays(24)->diffForHumans(null, true); // 3 weeks ~~~ ### 時間常數 ~~~ ';