這篇文章為大家帶來了關於laravel的相關知識,其中主要介紹了一些基礎知識,包括了怎麼安裝Laravel、路由、驗證器、視圖等等相關內容,下面一起來看一下,希望對大家有幫助。
【相關推薦:laravel影片教學】
一、安裝laravle
1、安裝composer
2、執行指令:
composer create-project laravel/laravel 專案資料夾名-- prefer-dist
二、目錄簡介
app
:應用程式的核心程式碼bootstrap
:一個引導框架的app.php文件,一個cache目錄(包含路由及快取文件),框架啟動文件,一般情況不動。config
:所有設定檔#database
:其中migrations目錄可以產生資料表。public
:入口檔案存放地,以及靜態資源(和tp類似)resources
:routes
:所有應用程式的路由定義tests
:可用來單元測試vendor
:所有composer依賴套件
三、路由初識
1、常見的幾個請求
- #Route::get(## u r l , url, u
- r#l##,callback);Route::post(# u r l , url, u r
- #l##,callback);Route::put(# u r l , url, ur
- #l##,callback);Route::delete(# u r l , url, ur #l
callback);
2、符合指定的請求方式Route::match(['get','post'],'/',function(){});
3、設定任意請求方式Route::any('/home', function () {
});
4、給路由加必填參數Route::get('/home/{id}', function ($id) {
echo 'id为:'.$id;});
5、增加路由參數
Route::get('/home/{id?}', function ($id = '') { echo 'id为:'.$id;});6、透過?形式傳遞get參數
Route::get('/home', function () { echo 'id为:'.$_GET['id'];});
Route::any('/home/index', function () { echo '测试';})->name('hh');
/admin/index
/admin /logout
/admin/add
如果一個一個添加是比較麻煩的,他們有一個共同的區別,都是有/admin/前綴,可設定一個路由群群組進行新增:###Route::group(['prefix'=>'admin'], function () { Route::get('test1', function () { echo 'test1'; }); Route::get('test2', function () { echo 'test2'; });});###此時就可透過/admin/test1來進行存取了。 ######9、路由設定控制器######控制器可以建造一個前台和一個後台:###
命令行创建路由:
php artisan make:controller Admin/IndexController
基本路由建立:
Route::get('test/index','TestController@index');
分目录路由建立:
Route::get('/admin/index/index','Admin\IndexController@index');
四、laravel验证器
引入:use Illuminate\Support\Facades\Validator
$param = $request->all();$rule = [ 'name'=>'required|max:2',];$message = [ 'required' => ':attribute不能为空', 'max' => ':attribute长度最大为2'];$replace = [ 'name' => '姓名',];$validator = Validator::make($param, $rule, $message,$replace);if ($validator->fails()){ return response()->json(['status'=>0,'msg'=>$validator->errors()->first()]);}
五、控制器获取用户输入的值
在控制器中如果要使用一个类,例如use Illuminate\Http\Request
,就可以简写为use Request
。
但是需要在config目录下的app.php配置文件中加入:
'aliases' => [ 'App' => Illuminate\Support\Facades\App::class, 'Arr' => Illuminate\Support\Arr::class, 'Artisan' => Illuminate\Support\Facades\Artisan::class, 'Auth' => Illuminate\Support\Facades\Auth::class, 'Blade' => Illuminate\Support\Facades\Blade::class, 'Request' => Illuminate\Support\Facades\Request::class, ],
1、获取用户单个输入值:
Input::get('id')
2、获取用户输入的所有值:
Input::all()
打印出来的是数组
关于dd(dump+die)
3、获取用户输入指定的值:
Input::only(['id','name'] //只接收id,其余不接受
4、获取用户输入指定值之外的值:
Input::except(['name'] //不接收name,其余都接收
5、判断某个值是否存在
Input::has('name') //存在返回true 不存在返回false 其中0返回true
六、视图的创建与使用
1、视图的创建
视图也可分目录管理:
控制器语法:
return view('home/test');
也可写为:
return view('home.test');
2、变量映射
控制器中:
return view('home/test',['day'=>time()]);
视图中:
{{$day}}
其中控制器中变量映射有三种:
- view(模板文件,数组)
- view(模板文件)->with(数组)
- view(模板文件)->with(数组)->with(数组)
了解一下compact数组。
3、视图渲染
3.1 foreach的使用
控制器中:
public function index(){ $arr = [ 0 => [ 'name' => 'tom', 'age' => '12', ], 1 => [ 'name' => 'bby', 'age' => '13', ] ]; return view('home/test',['data'=>$arr]); }
视图中:
@foreach($data as $k=>$v) 键:{{$k}} 值:{{$v['name']}} <br>@endforeach
3.2 if的使用
@if(1==2) 是的 @else 不是的 @endif
4、视图之间的引用
@include('welcome')
七、模型的创建与使用
1、创建模型的命令
php artisan make:model Model/Admin/Member
此时,就会在app目录内创建:
2、模型基本设置
<?phpnamespace App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Member extends Model{ //定义表名 protected $table = 'student'; //定义主键 protected $primaryKey = 'id'; //定义禁止操作时间 public $timestamps = false; //设置允许写入的字段 protected $fillable = ['id','sname'];}
3、模型数据添加
方式一:
$model = new Member(); $model->sname = '勒布朗'; $res = $model->save(); dd($res);
方式二:
$model = new Member(); $res = $model->create($request->all()); dd($res);
4、模型的表连接
//查询客户与销售顾问的客资列表$data = Custinfo::select(['custinfo.*', 'customers.name']) ->join('customers', 'customers.id', '=', 'custinfo.cust_id') ->where($where) ->get() ->toArray();
5、简单模型关联一对一
<?phpnamespace App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Phone extends Model{ //定义表名 protected $table = 'phone'; //定义主键 protected $primaryKey = 'id'; //定义禁止操作时间 public $timestamps = false; //设置允许写入的字段 protected $fillable = ['id','uid','phone'];}
<?phpnamespace App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Member extends Model{ //定义表名 protected $table = 'student'; //定义主键 protected $primaryKey = 'id'; //定义禁止操作时间 public $timestamps = false; //设置允许写入的字段 protected $fillable = ['id','sname']; /** * 获取与用户关联的电话号码记录。 */ public function getPhone() { return $this->hasOne('App\Model\Admin\Phone', 'uid', 'id'); }}
//对象转数组 public function Arr($obj) { return json_decode(json_encode($obj), true); } public function index(){ $infoObj = Member::with('getPhone')->get(); $infoArr = $this->Arr($infoObj); print_r($infoArr); }
八、日志
1、自定义日志目录
在config
目录下的logging.php
中的channels
配置:
'custom' => [ 'driver' => 'single', 'path' => storage_path('logs/1laravel.log'), 'level' => 'debug', ]
控制器中:
$message = ['joytom','rocker'];Log::channel('custom')->info($message);
九、迁移文件
建立一个迁移文件:php artisan make:migration create_shcool_table
会在database\migrations
下创建一个文件:
在up方法中增加如下代码:
<?phpuse Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;class CreateShcoolTable extends Migration{ /** * Run the migrations. * * @return void */ public function up() { Schema::create('shcool', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('school_name','20')->notNull()->unique(); $table->tinyInteger('status')->default(1); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('shcool'); }}
更详细的生成SQL方法请参考:数据迁移文件常用方法速查表
写好SQL文件以后,执行:php artisan migrate
将会生成数据表,其中操作日志将记录在这个表中:
php artisan migrate:rollback
:回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。
【相关推荐:laravel视频教程】
以上是歸納整理Laravel基礎知識總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Laravel和Python在開發環境和生態系統上的對比如下:1.Laravel的開發環境簡單,僅需PHP和Composer,提供了豐富的擴展包如LaravelForge,但擴展包維護可能不及時。 2.Python的開發環境也簡單,僅需Python和pip,生態系統龐大,涵蓋多個領域,但版本和依賴管理可能複雜。

Laravel是如何在後端邏輯中發揮作用的?它通過路由系統、EloquentORM、認證與授權、事件與監聽器以及性能優化來簡化和增強後端開發。 1.路由系統允許定義URL結構和請求處理邏輯。 2.EloquentORM簡化數據庫交互。 3.認證與授權系統便於用戶管理。 4.事件與監聽器實現松耦合代碼結構。 5.性能優化通過緩存和隊列提高應用效率。

Laravel受歡迎的原因包括其簡化開發過程、提供愉快的開發環境和豐富的功能。 1)它吸收了RubyonRails的設計理念,結合PHP的靈活性。 2)提供瞭如EloquentORM、Blade模板引擎等工具,提高開發效率。 3)其MVC架構和依賴注入機制使代碼更加模塊化和可測試。 4)提供了強大的調試工具和性能優化方法,如緩存系統和最佳實踐。

Django和Laravel都是全棧框架,Django適合Python開發者和復雜業務邏輯,Laravel適合PHP開發者和優雅語法。 1.Django基於Python,遵循“電池齊全”哲學,適合快速開發和高並發。 2.Laravel基於PHP,強調開發者體驗,適合小型到中型項目。

PHP和Laravel不是直接可比的,因為Laravel是基於PHP的框架。 1.PHP適合小型項目或快速原型開發,因其簡單直接。 2.Laravel適合大型項目或高效開發,因其提供豐富功能和工具,但學習曲線較陡,性能可能不如純PHP。

laravelisabackendframeworkbuiltonphp,設計ForweBapplicationDevelopment.itfocusessonserver-sideLogic,databasemagemention和Applicationstructure和CanBeintegratedWithFrontendTechnologiesLikeLikeVue.jsorreActeReacterVue.jsorreActforforfull-stackDevefloct。

本文討論了Laravel中的創建和使用自定義刀片指令以增強模板。它涵蓋了定義指令,在模板中使用它們,並在大型項目中管理它們,強調了改進的代碼可重複性和R等好處

本文討論了使用組件在Laravel中創建和自定義可重複使用的UI元素,從而為組織提供最佳實踐並建議增強包裝。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能