laravel初接觸
一、本地安裝laravel框架
通過composer安裝laravel框架:
//composer create-project --prefer-dist laravel/laravel <專案名>
composer create-project --prefer-dist laravel/laravel blog
二、執行artisan命令
1、控制器
通過如下命令建立的控制器會出現在app
資料夾裡的Http
資料夾裡的Controllers
資料夾裡
php artisan make:controller <控制器名字>
三、laravel框架初識
在laravel框架裡,路由訪問控制器,控制器呼叫模版
1、在laravel框架裡,檔案的訪問必須通過路由,所有的路由都在routes
目錄中的路由檔案來定義,web
介面的路由是在routes/web.php
檔案中定義
Route::get('/', '[email protected]');
如上的路由將會尋找控制器TestController
中的home
方法
2、控制器中呼叫模版的示例
class TestController extends Controller
{
public function home()
{
return view('home.home' );
}
//
}
view
方法訪問的是resources
資料夾裡的views
資料夾,上面示例尋找的是views
資料夾裡的home
資料夾裡的home
模版,模版檔案的命名規範是檔名.blade.php
3、laravel
框架引入了bootstrap4
,如果想在頁面中使用bootstrap4
,可以直接引入public
裡的css
裡的app.css
檔案來使用
4、在實際開發中,會存在某一模組需要在很多頁面中使用,為了實現程式碼的複用,就需要使用@yield
,@extends
,@section
,@endsection
使用方法:建立一個父模版頁面,將公共的部分寫在裡面,然後在需要變更的地方用@yield('佔位名')
@extends('父模版')
繼承父模版裡面的內容,然後使用@section('佔位名')<頁面佈局程式碼塊>@endsection
, 如果只是希望給父模版頁面傳一個值,那麼就不用定義
section
塊,直接使用@section('<佔位名>','<值>')
,父模版使用@yield('<佔位名>','<預設值>')
,這樣渲染引擎在渲染時,如果子模版通過@section
傳值了,那麼就用子模版傳過來的值來取代佔位符,如果子模版沒有傳值,那麼就用預設值來取代佔位符 5、配置前端腳手架,方便程式碼的開發,不用再去配開發環境
npm install
–>npm install cross-env
6、npm run dev
編譯,會根據webpack.mix.js
檔案,將css和js編譯到指定的位置
7、npm run watch
:每次改變scss
等檔案之後執行npm run dev
編譯,會麻煩也不高效,所以要監聽檔案,這樣每次修改scss
檔案之後,會自動幫我們編譯
8、對於複用的程式碼片段,可以通過@include('<檔名>')
來引入
9、路由起別名
Route::get('/', '[email protected]');
這種路由的定義方式下,可能路由的路徑需要改變,這時候,如果不改變相應連結的href值,那頁面可能會找不到。針對這種情況,可以通過鏈式操作給路由起一個別名,如下:
Route::get('/', '[email protected]')->name('home');
相對應的連結的地方,使用{{route('<路由別名>')}}
的方式訪問
10、資料庫遷移,相當於資料庫的版本控制
首先需要修改.env
檔案中與資料庫相關的配置,php artisan migrate
執行資料庫遷移,會根據database
資料夾裡的migrations
資料夾裡的遷移類檔案來生成資料表,執行的是類裡的up方法,除了生成與檔案對應的表之外,還會生成一個migrations
表,裡面記錄的就是建立表的版本資訊
當執行過資料遷移後,若不建立新的遷移檔案(即不建立新的資料表)(每個遷移檔案的檔名都會有對應的時間戳),再執行資料遷移,不會有效果,因為它會到migrations
表中查詢有沒有對應的表,如果有那麼就不會再建立
php artisan migrate:rollback
執行回滾遷移,執行的是類檔案裡的down方法,會將資料表刪除,migrations
表中對應表的記錄也會刪除
11、建立模型
在框架結構中,一般不直接操作資料庫中的資料表,而是通過建立一個模型,將模型與資料表對應,可以通過php artisan make:model
來建立一個模型,可以在後面跟上-m
來一起生成一個數據遷移檔案,如:php artisan make:model Article -m
,那麼就會在app
資料夾下生成Article
模型,並在database
資料夾下的migrations
資料夾下生成對應的遷移檔案
如果在模型檔案中不指定表名,那麼預設對應的資料表的表名就是<模型名>s
的命名方式
12、使用tinker可以讓我們在命令列測試資料庫,而不用在檔案中寫測試語句
php artisan tinker
進入tinker命令列
在tinker命令列中可以通過模型修改表記錄,如:
php artisan tinker
use \App\User
$user = User::first() //獲取user表中第一條記錄
$user->name = '小明' //這樣修改資料表中的記錄並不會被改變,需要再執行save操作才能將兩者進行同步
$user->save() //這樣操作後資料表中的記錄才會被修改
//也可以通過如下更新表記錄
$user->update(['name'=>'小紅'])
13、通過路由傳遞引數
在定義路由時,可以在路徑後面用{}的方式跟引數,在對應方法裡用形參接收,如:
//web.php
Route::get('/user/{name}', 'user\[email protected]')->name('show');
//UserController/show方法
public function show($name){
dd($name); //框架自帶的列印方法
}
//位址列
<域名>/user/小明
//跳轉的頁面中就會將‘小明’打印出來
路由隱式引數的效果:只要方法裡的形參名與路由中定義的引數名一致
//web.php
Route::get('/user/{user}', 'user\[email protected]')->name('show');
//UserController
use App\User
//UserController/show方法
public function show(User $user){
dd($user->toArray()); //框架自帶的列印方法
}
//位址列
<域名>/user/1
//頁面中就會將資料表user表中主鍵為1的那條記錄打印出來
//如果$user與{user}兩者的名字不一致,比方說形參名變為$people,那麼這時候就會出現404找不到的情況
相關推薦
laravel初接觸
一、本地安裝laravel框架 通過composer安裝laravel框架: //composer create-project --prefer-dist laravel/laravel <專案名> composer create-
SmartImageView初接觸
android smartimageview 最近一直在學習從遠程服務器獲取圖片,開始時都是手寫這些處理,後來接觸到了smartImageview這個插件。github獲取地址:https://github.com/loopj/android-smart-image-view官方原版插件說明Overv
面向對象初接觸(下)
tom pytho cor 控制 elf 類型 () int on() 當一個類中的屬性條件不滿足我們的需求時,考慮到為了不破壞封裝,從而對其屬性進行增加的實現,就有了以下幾種方法 猴子補丁 from test01 import Person from test001
Orleans 初接觸(一) 入門例子
方法 ket sys pre 直接 .cn rain ros sqlserve 【返回導航】 在簡單了解了Orleans 之後我們可以通過幾個例子去加深印象 一、Orleans入門例子 這個例子是跟著《Orleans入門例子》(https://www.cnblog
css初接觸
簡潔 定義 標簽 auto html元素 light 分類 ref 負數 css:層疊式表,用來美化頁面,定義如何顯示html元素,讓html代碼顯示更加簡潔明了。 css分類:1.內聯:寫在標簽裏面,以屬性的形式,屬性名為style,優先級別最高。(不推薦使用,原因代碼看
Go初接觸之imagick
get 對象 top ola error AI AR rap des imagemagick是一個著名的圖片處理庫,github上有人將其封裝成了golang能用的庫,所以依舊是寫一個縮略圖的程序。今天看項目源碼看的我頭都大了。 1 package main 2
Linux命令初接觸
文件 包括 創建 同文件 命令 查看命令 一個 pwd r文件 LS: 列出當前文件夾內容 -a 列出所有內容,包括隱藏的 -l 以列表形式列出所有內容 PWD: 顯示當前路徑 CD: 改變路徑命令 MKDIR: 創建一個或者多個文件夾or文件
SpringBoot初接觸
tel 映射 style 頁面 exp hello lba ron 發現 使用SpringBoot寫HelloWorld,當配置好啟動類後,再創建新的controller或其它類,啟動項目後訪問對應的映射名,頁面顯示: Whitelabel Error Page This
Linux命令初接觸(二)
less 不同 後綴 .gz shell編程 查看 顯示 末尾 bsp FILE: 查看文件的類型 DIFF: 比較兩個文件內容的不同 diff 文件1 文件2 FIND: 查找文件 find 路徑 -name “文件名” GREP: 根據
學海無涯——機器人流程自動化初接觸(RPA,Robotic process automation)
公司舉辦了一個關於RPA的講座,或許是用英語講的原因,聽得稀裡糊塗的。 還是自己補補課吧。 --------------------------------------------------------------------------------------------------
Vue.js初接觸
Vue.js框架 Vue是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,Vue 也完全能夠為複雜
React初接觸--小Demo
<body> <div id="example"></div> <script type="text/babel"> ReactDOM.render( <h1>Hello, world
.NET Core Mvc和MySql初接觸(三)log4Net全域性異常日誌
首先到NuGet上安裝log4net 安裝完成後增加一個log4net配置檔案,命名隨意,需要到startup.cs初始化 <?xml version="1.0" encoding="utf-8
jmeter初級學習一效能測試初接觸------《JMeter實戰》
技術要求 測試工具:JMeter、LoadRunner 測試基礎 :效能測試理論、自動化測試理論、測試開發 伺服器效能診斷:CPU、磁碟、記憶體、網路 優化技能:程式碼、架構、中介軟體、作業系統、資料庫(SQL、配置、設計) 協議:http/https、We
初接觸linux的那些事兒
週六安裝了虛擬機器,也裝了centos6.8。但是安裝的是基礎版的,沒有那麼多功能,而linux呢,好多功能和外掛都是需要我們自己來安裝擴充套件的。 1,首先,我們需要安裝onei
【spring-boot】spring aop 面向切面程式設計初接觸
眾所周知,spring最核心的兩個功能是aop和ioc,即面向切面,控制反轉。這裡我們探討一下如何使用spring aop。 1.何為aop aop全稱Aspect Oriented Programming,面向切面,AOP主要實現的目的是針對業務處理過程中的切面進行提取,它所面對的是處理過程中的某個
[Python初接觸]Windows10-32bit+Python2.7.12+OpenCV3.1.0配置
筆者在Windows10-64bit + Python2.7.12 + OpenCV3.1.0配置上進行了配置,併成功了。現在,筆者拎起另一臺電腦進行配置,並記錄如下,望共勉。
Spring Boot Spring Aop初接觸
眾所周知,spring最核心的兩個功能是aop和ioc,即面向切面,控制反轉。這裡我們探討一下如何使用spring aop。 1.何為aop aop全稱Aspect Oriented Programming,面向切面,AOP主要實現的目的是針對業務處理過程中的切面
mongodb系列教程——1初接觸
MongoDB是什麼? MongoDB屬於記憶體型資料庫,是一種基於文件的,非關係資料庫,在需要讀效能要求很高的專案中有著比較不錯的表現。可做前段快取伺服器、緩衝資料儲存區,同樣也可以作為應用系統的儲存伺服器,例如微博、論壇等應用系統,也可以作為圖片儲存伺服器(分散式);
java6內建JS引擎初接觸
由於要用到該技術,所以寫了幾個測試,直接上程式碼。 定義外部資源E:/ScriptEngine/test01.js if(age>=18){ print('Old enough to vote!'); }else{ print('Back to school