」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 嬰兒學步學習 Laravel

嬰兒學步學習 Laravel

發佈於2024-11-08
瀏覽:268

歡迎回來,開發者! ✨

在Laravel 之旅的這一章中(請記住,我在撰寫這些文章時正在學習,因此這將是您能找到的最現實的教程系列之一!),我們將深入研究我們的Laravel 專案。我們將探索專案結構,熟悉遷移,並以最簡單的方式分解 MVC 架構。

?今天的議程:

  1. 探索我們的專案結構 ?️

    • 了解目錄版面並順利瀏覽。
  2. 設定資料庫並了解遷移 ?️

    • 配置我們的資料庫並開始處理遷移。
  3. 理解 MVC 並創造一些 MVC 元素 ?

    • 了解 MVC 架構如何運作並修補遷移。

那麼,所有這些目錄都在做什麼? ?

在新建立的 Laravel 專案中首次啟動 VSCode 時,您可能會發現目錄結構有點令人生畏。以下是每個關鍵目錄的作用的快速概述:

  • app/:包含應用程式邏輯(控制器、模型)。
  • 資源/視圖/:您的 Blade 範本所在的位置。
  • routes/:包含路由定義。
  • config/:Laravel 各方面的設定檔。
  • database/:遷移、播種器和 SQLite 資料庫(如果使用)。
  • public/:Web請求的入口點,包括CSS和JS等資源。

好消息:你現在不需要知道一切。請將此備忘單放在手邊!

壞消息:隨著系列的進展,您需要了解這些。我將添加“知識檢查點”來提醒您它們的用途。

在瀏覽器中查看您的 Web 應用程式?

讓我們來體驗 Laravel!開啟終端機並輸入:

php artisan serve

然後,前往瀏覽器並造訪 localhost:8000。您應該會看到類似這樣的內容:

Baby Steps Learning Laravel

重要:確保您的伺服器和資料庫正在運行(如果使用 XAMPP,如我之前的文章中所述)。

什麼是工匠? ?

如果您習慣了 JavaScript,請將 php artisan 視為類似於 npm run dev 的服務。

Artisan 是 Laravel 自帶的一個強大的命令列工具,讓各種任務變得簡單又快速。 serve 指令啟動本機開發伺服器。隨著我們的進展,我們會更多地使用 Artisan,所以現在不要太擔心。

配置我們的資料庫?

網頁應用程式本質上是資料庫的包裝器。 Laravel 支援各種資料庫:

  • SQLite:默認,零配置 - 非常適合中小型專案。
  • MySQL:對於較大的項目,儘管 SQLite 適用於大多數情況。

設定 SQLite

不需要配置;這是預設資料庫。

設定 MySQL(如果使用 XAMPP)

編輯 .env 檔案以取消註解 MySQL 設定:

SQLite 設定

Baby Steps Learning Laravel

MySQL 設定

Baby Steps Learning Laravel

.env 檔案就像是用於開啟和關閉配置的總機。


?搶先了解 MVC:寶貝範例?

在以後的文章中深入探討 MVC 之前,讓我們先透過一些簡單的範例來快速了解。

什麼是MVC? ?

MVC 代表模型-視圖-控制器。這是一種分離應用程式中關注點的設計模式:

  • 模式:?️ 管理資料和業務邏輯。
  • View: ?️ 向使用者顯示資料。
  • 控制器:?️ 連接模型和視圖,處理輸入和資料流。

️ Baby 範例:一個簡單的「Hello World」應用程式

1. 型號

這是一個用於儲存訊息的 Greeting 模型:

// app/Models/Greeting.php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Greeting extends Model
{
    protected $table = 'greetings';
    protected $fillable = ['message'];
}

2. 查看

視圖顯示問候語訊息:





    Greeting

{{ $message }}

3. 控制器

控制器會取得問候訊息並將其傳遞給檢視:

// app/Http/Controllers/GreetingController.php
namespace App\Http\Controllers;

use App\Models\Greeting;
use Illuminate\Http\Request;

class GreetingController extends Controller
{
    public function show()
    {
        $greeting = Greeting::first();
        return view('greeting', ['message' => $greeting->message]);
    }
}

一切如何協同工作

  • 模型:管理資料(Greeting 類別)。
  • 查看:呈現資料(greeting.blade.php)。
  • 控制器:連接模型和視圖(GreetingController)。

在此設定中:

  • 模型處理資料。
  • 視圖顯示資料。
  • 控制器連接兩者。

在以後的文章中,我們將更深入地研究每個組件並探索更複雜的範例。敬請關注! ?

版本聲明 本文轉載於:https://dev.to/mohammed_kareem/baby-steps-learning-laravel-2bn1?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • Lithe 中間件:它是如何運作的以及如何創建自己的中間件
    Lithe 中間件:它是如何運作的以及如何創建自己的中間件
    中间件提供了一种方便的机制来检查和过滤进入应用程序的 HTTP 请求。 例如,Lithe 包含检查用户是否经过身份验证的中间件。如果没有,中间件会将用户重定向到登录屏幕。如果用户通过身份验证,中间件将允许请求继续。 中间件如何在 Lithe 中工作 在 Lithe 中,中间件是能够访...
    程式設計 發佈於2024-11-08
  • 如何在 JavaScript 中建立具有重複元素的陣列?
    如何在 JavaScript 中建立具有重複元素的陣列?
    JavaScript 中重複元素的數組創建具有多次重複的相同元素的數組在各種編程場景中至關重要。在 Python 中,這可以透過列表乘法來實現,如 [2] * 5 所示。但是,此功能在 JavaScript 陣列中不能直接使用。 自訂函數方法為了滿足這種需求,一種方法是建立自訂函數,例如問題中提供的...
    程式設計 發佈於2024-11-08
  • ## MySQL 中的 LIKE 與 LOCATE:哪個運算子是效能之王?
    ## MySQL 中的 LIKE 與 LOCATE:哪個運算子是效能之王?
    MySQL LIKE 與LOCATE 效能比較在MySQL 中查找資料時,你可能會想知道LIKE 和LOCATE 哪個運算子效率更高?本文探討了這兩個運算子之間的效能差異。 在典型的使用場景中,LIKE 比 LOCATE 稍快。這主要是因為 LIKE 不像 LOCATE 那樣執行與 0 的額外比較。...
    程式設計 發佈於2024-11-08
  • 如何使用 PHP 更新多個 MySQL 行的表單資料?
    如何使用 PHP 更新多個 MySQL 行的表單資料?
    使用表單資料更新多個MySQL 行在Web 開發中,通常有一個表單,使用者可以在其中編輯資料庫中的記錄。常見的情況是使用修改後的資料更新同一個表中的多行。這可以使用 PHP 和 MySQL 來實作。 表單結構與資料擷取初始表單負責呈現要編輯的資料。在此範例中,表單從資料庫中擷取具有特定 GALLER...
    程式設計 發佈於2024-11-08
  • 為什麼我不能在 Go 中將 []byte 分配給字串?
    為什麼我不能在 Go 中將 []byte 分配給字串?
    了解位元組分配錯誤:無法將[]byte 指派給字串在嘗試讀取資料夾中的檔案時,遇到了錯誤嘗試讀取檔案內容時,「無法在多重賦值中將[]byte 指派給z(字串類型)」。讓我們深入研究這個錯誤背後的原因。 理解多重賦值當在一行中為多個變數賦值時,如程式碼所示:z, err := ioutil.ReadF...
    程式設計 發佈於2024-11-08
  • 如何使用 React 和 Typescript 建立自訂表格元件(第 2 部分)
    如何使用 React 和 Typescript 建立自訂表格元件(第 2 部分)
    介绍 耶! ?您已经完成了这个由两部分组成的系列的最后一部分!如果您还没有查看第 1 部分,请先停在此处并完成第 1 部分。别担心,我们会等你回来! ? 在第 1 部分中,我们构建了 CustomTable 组件。您可以在这里看到它的实际效果。 在第二部分中,我们将扩展该组件以添加...
    程式設計 發佈於2024-11-08
  • 使用 TypeScript 和 ioredis 在 Node.js 中建立高效能快取管理器
    使用 TypeScript 和 ioredis 在 Node.js 中建立高效能快取管理器
    使用基於 ioredis 建構的多功能、易於使用的快取管理器來提升 Node.js 應用程式的效能。簡化快取、優化效率並簡化操作。 我根據自己的需求開發了一個基於 ioredis 的類,重點關注易用性和性能。它包括 TypeScript 支持,旨在實現簡單使用和高效操作。它仍然可以進一步改進和優化...
    程式設計 發佈於2024-11-08
  • 超類別引用和子類別對象
    超類別引用和子類別對象
    Java 是一種強型別語言。 標準轉換和自動升級適用於原始型別。 嚴格執行型別相容性。 通常,一個類別的引用變數不能引用另一個類別的物件。 即使類別 X 和 Y 在結構上相同,也不可能將 X 的引用分配給 Y 的對象,因為類型不同。 一般來說,物件引用變數只能引用其類型的物件。 型別強...
    程式設計 發佈於2024-11-08
  • Flexbox 中的 flex-grow 和 width 有何不同?
    Flexbox 中的 flex-grow 和 width 有何不同?
    Flexbox中flex-grow和width的區別Flexbox提供了兩種在元素之間分配空間的主要方法:flex- grow和width。了解這些屬性之間的差異對於有效使用 Flexbox 至關重要。 Flex-grow 與 widthFlex-grow 是一個無量綱屬性,定義元素的大小擴展以填充...
    程式設計 發佈於2024-11-08
  • 如何將表單標籤和輸入水平對齊在同一行?
    如何將表單標籤和輸入水平對齊在同一行?
    實現表單標籤與輸入在同一行水平放置在網頁開發中,表單的美觀對於使用者體驗至關重要。將標籤和輸入欄位排列在同一行可以增強表單的可讀性和可用性。本文探討如何將輸入元素與其標籤無縫對齊,無論其長度為何。 初始嘗試在單一元素上對齊標籤和輸入的常見方法行涉及將輸入的寬度設為自動。然而,這通常會導致輸入寬度固定...
    程式設計 發佈於2024-11-08
  • 遞迴-1
    遞迴-1
    簡介1 函數呼叫自身的過程稱為遞歸, 對應的函數稱為遞歸函數. 由於電腦程式設計是數學的基本應用,因此讓 我們首先嘗試理解遞歸背後的數學推理。 一般來說,我們都知道函數的概念。簡而言之,函數是 提供輸入時產生輸出的數學方程式。例如: 假設函數 F(x) 是由下式定義的函數: F(...
    程式設計 發佈於2024-11-08
  • 將日誌記錄和錯誤處理中間件新增至您的 Go API
    將日誌記錄和錯誤處理中間件新增至您的 Go API
    快速注意:如果您查看了我之前關於 JWT 身份驗證的帖子並註意到一些渲染問題,那麼這些問題現已修復!請務必再看一遍,因為這些範例建立在該教程的基礎上。 :) 好吧,夥計們,我們已經運行了 Go API,添加了 JWT 身份驗證,甚至將其連接到 PostgreSQL 資料庫。但我們還沒完成!本週,我...
    程式設計 發佈於2024-11-08
  • Tensorflow 音樂預測
    Tensorflow 音樂預測
    在本文中,我將展示如何使用張量流來預測音樂風格。 在我的範例中,我比較了電子音樂和古典音樂。 您可以在我的github上找到代碼: https://github.com/victordalet/sound_to_partition I - 資料集 第一步,您需要建立一個資料集資料...
    程式設計 發佈於2024-11-08
  • useEffect 鉤子解釋
    useEffect 鉤子解釋
    useEffect 鉤子是 React 的基本組成部分,可讓您在功能元件中執行副作用。詳細分析如下: 什麼是useEffect? useEffect 掛鉤可讓您在元件中執行副作用,例如資料擷取、訂閱或手動變更 DOM。 可以認為是生命週期方法 componentDidMount、c...
    程式設計 發佈於2024-11-08
  • CSS 檔案路徑中的版本號碼如何提升網站效能?
    CSS 檔案路徑中的版本號碼如何提升網站效能?
    CSS 檔案路徑中版本號碼的快取清除在 Web 開發中,增強使用者體驗通常需要有效率地載入 CSS 檔案等資源。採用的一種巧妙技術是將版本號附加到CSS 檔案路徑,如在某些網站中所觀察到的:這個看似無關緊要的新增有一個重要的目的,稱為快取清除。 快取清除的目的Web 瀏覽器使用快取來減少後續的快取頁...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3