”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 婴儿学步学习 Laravel

婴儿学步学习 Laravel

发布于2024-11-08
浏览:788

欢迎回来,开发者! ✨

在 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]删除
最新教程 更多>
  • 如何检查对象是否具有Python中的特定属性?
    如何检查对象是否具有Python中的特定属性?
    方法来确定对象属性存在寻求一种方法来验证对象中特定属性的存在。考虑以下示例,其中尝试访问不确定属性会引起错误: >>> a = someClass() >>> A.property Trackback(最近的最新电话): 文件“ ”,第1行, attributeError:SomeClass实...
    编程 发布于2025-05-12
  • 如何克服PHP的功能重新定义限制?
    如何克服PHP的功能重新定义限制?
    克服PHP的函数重新定义限制 但是,PHP工具腰带中有一个隐藏的宝石:runkit扩展。它使您能够灵活地重新定义函数。 runkit_function_renction_rename() runkit_function_redefine() //重新定义'this'以返回“新和改...
    编程 发布于2025-05-12
  • 图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    在chrome 中删除一个频繁的问题时,在与Chrome and IE9中的图像一起工作时,遇到了一个频繁的问题。和“边境:无;”在CSS中。要解决此问题,请考虑以下方法: Chrome具有忽略“ border:none; none;”的已知错误,风格。要解决此问题,请使用以下CSS ID块创建带...
    编程 发布于2025-05-12
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在银光应用程序中,尝试使用LINQ建立错误的数据库连接的尝试,无法找到以查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中,tblpersoon可能需...
    编程 发布于2025-05-12
  • 如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    从python import codecs import codecs import codecs 导入 text = codecs.decode('这狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#带有...
    编程 发布于2025-05-12
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案:的,请访问量很大,并应为procectiquiestate的,并在整个代码上正确格式不多: java.text.simpledateformat; 导入java.util.calendar; 导入java...
    编程 发布于2025-05-12
  • 如何在php中使用卷发发送原始帖子请求?
    如何在php中使用卷发发送原始帖子请求?
    如何使用php 创建请求来发送原始帖子请求,开始使用curl_init()开始初始化curl session。然后,配置以下选项: curlopt_url:请求 [要发送的原始数据指定内容类型,为原始的帖子请求指定身体的内容类型很重要。在这种情况下,它是文本/平原。要执行此操作,请使用包含以下标头...
    编程 发布于2025-05-12
  • 如何从Google API中检索最新的jQuery库?
    如何从Google API中检索最新的jQuery库?
    从Google APIS 问题中提供的jQuery URL是版本1.2.6。对于检索最新版本,以前有一种使用特定版本编号的替代方法,它是使用以下语法:获取最新版本:未压缩)While these legacy URLs still remain in use, it is recommended ...
    编程 发布于2025-05-12
  • 切换到MySQLi后CodeIgniter连接MySQL数据库失败原因
    切换到MySQLi后CodeIgniter连接MySQL数据库失败原因
    Unable to Connect to MySQL Database: Troubleshooting Error MessageWhen attempting to switch from the MySQL driver to the MySQLi driver in CodeIgniter,...
    编程 发布于2025-05-12
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-05-12
  • 在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8 MySQL表中正确将Latin1字符转换为UTF8的方法
    在UTF8表中将latin1字符转换为utf8 ,您遇到了一个问题,其中含义的字符(例如,“jáuòiñe”)在utf8 table tabled tablesset中被extect(例如,“致电。为了解决此问题,您正在尝试使用“ mb_convert_encoding”和“ iconv”转换受...
    编程 发布于2025-05-12
  • 找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    找到最大计数时,如何解决mySQL中的“组函数\”错误的“无效使用”?
    如何在mySQL中使用mySql 检索最大计数,您可能会遇到一个问题,您可能会在尝试使用以下命令:理解错误正确找到由名称列分组的值的最大计数,请使用以下修改后的查询: 计数(*)为c 来自EMP1 按名称组 c desc订购 限制1 查询说明 select语句提取名称列和每个名称...
    编程 发布于2025-05-12
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-05-12
  • 表单刷新后如何防止重复提交?
    表单刷新后如何防止重复提交?
    在Web开发中预防重复提交 在表格提交后刷新页面时,遇到重复提交的问题是常见的。要解决这个问题,请考虑以下方法: 想象一下具有这样的代码段,看起来像这样的代码段:)){ //数据库操作... 回声“操作完成”; 死(); } ?> ...
    编程 发布于2025-05-12
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php PHP陷入困境。使用simplexmlelement :: attributes()函数提供了简单的解决方案。此函数可访问对XML元素作为关联数组的属性: - > attributes()为$ attributeName => $ attributeValue){ echo ...
    编程 发布于2025-05-12

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3