Rumah rangka kerja php Laravel 在php中如何学习laravel框架(菜鸟初学者)

在php中如何学习laravel框架(菜鸟初学者)

Jul 16, 2020 am 11:59 AM
laravel

在php中如何学习laravel框架(菜鸟初学者)

关于laravel的介绍就不讲了,总之laravel是款比较强大的框架,它是国外框架所以在安装的上面可能比较麻烦。

laravel的安装

首先安装laravel之前要安装composer,如果是linux系统即可直接下载安装,下载完后不能安装记得修改下文件权限用命令chmod,这边主要讲下window下如何使用composer这个工具。 

首先百度搜索中国composer镜像,就可以找到composer config -g repositories.packagist composer http://packagist.phpcomposer.com这条命令,运行cmd在命令行运行上面的命令,就可以下载composer工具,

下载成功后可以看到composer文件底下有个composer.json文件这是一个配置文件,打开配置文件写明php版本信息和要下载的laravel信息,格式如下:

  {
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist"
    },
    "repositories": [
        {"type": "composer", "url": "http://packagist.phpcomposer.com"},
        {"packagist": false}
    ]
}```
Salin selepas log masuk

配置好之后输入composer install 进行安装laravel,这边要比较注意的是安装目录的路径问题,如果你想安装在d盘底下就在把命令行切到d目录底下进行安装(在此操作之前要配置好环境变量)。

laravel的目录结构介绍

安装完的第一次肯定是要想怎么去运行它,很简单,直接进入public文件就可以打开一个开始页面,如果在本地的话那就是localhost/laravelproject/public,就可以运行。

接下来介绍下laravel目录结构,首先介绍下public的index.php文件 里面主要是加载了开始文件然后才能成功运行laravel,具体的两个文件你可以在根目录下bootstrap文件夹中找到。现在看下app中的结构:

这里写图片描述
view中主要放的是视图文件(创建文件时要用到blade模板,比如创建test.blade.php,laravel中是结合blade模板引擎来调用视图模板)

controller放的是控制器(手动创建时记得要用composer 命令进行更新)

config中主要是配置文件(比如配置数据库时要用到database.php文件)

models主要是放模型(也就是数据库的表)

routes则是路由配置,

filters则是过滤器。

laravel是怎么运行的

刚学习时肯定是要先尝试下如何运行这个laravel,首先手动创建一个controller,文件命名为TestController.php,然打开命令行进入项目的根目录下 执行 composer dumpautoload,里面内容可以模仿homeController.php。

然后编辑routes.php文件,将原来的Route::GET(‘/’,function()…);修改为Route::Get(‘/’,’TestController@showWelcome’); 然后运行也会跳到laravel欢迎界面。

如果Route::Get(‘test’,’TestController@showWelcome’);则在网站根目录下后面直接增加test就可以访问了,到了这里应该明白了怎么到Controller,Controller怎么到View了。

laravel数据库配置

这边用到的是mysql,进行了简单的配置

'mysql' => array(
'driver'    => 'mysql',
'host'      => 'localhost',
'database'  => 'oss',
'username'  => 'root',
'password'  => '',
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
)
Salin selepas log masuk

laravel的数据库使用

数据表比较多时且数据表的前缀不一样,则可以先配置模型model,在models文件夹中建立一个文件要与表名一样的php文件,内容如下:
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
    use UserTrait, RemindableTrait;
    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = &#39;users&#39;;
    /**
     * The attributes excluded from the model&#39;s JSON form.
     *
     * @var array
     */
    protected $hidden = array(&#39;password&#39;, &#39;remember_token&#39;);
}
Salin selepas log masuk

即可以直接使用 User ::all() 查询所有结果 ,User::find(2)查询一个,Post::findOrFail(2)

如果没找到就会返回错误,Post::save()、Post::where()->find()、Post::add()、Post::delete()

数据库的简便操作:

DB::table(‘tablename’)->insert([
        插入多个时要再加一个数组
        [&#39;title&#39;=>&#39;title&#39;,&#39;name&#39;=>&#39;name&#39;]
        [&#39;title&#39;=>&#39;title&#39;]
        [&#39;title&#39;=>&#39;title&#39;]
        ])
        插入时要想得到ID
        DB::table(&#39;tablename&#39;)->insertGetId([&#39;title&#39;=>&#39;titles&#39;])
        更新数据要有ID
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,1)->update([&#39;title&#39;=>&#39;titles&#39;])
        删除数据
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,1)->delete();
        查询数据
        DB::table(&#39;tablename&#39;)->get();  得到全部的值
        DB::table(&#39;tablename&#39;)->get([&#39;title&#39;]); 只查询title的值
        DB::table(&#39;tablename&#39;)->first();  只拿第一个
        DB::table(&#39;tablename&#39;)->orderBy(&#39;id&#39;,&#39;desc&#39;)->first(); 根据id排序
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,&#39;!=&#39;,2)->get(); 不等于2
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,&#39;!=&#39;,2)->where(&#39;id&#39;,&#39;>&#39;,5)->get(); 可以使用多个where
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,&#39;!=&#39;,2)->OrWhere(&#39;id&#39;,&#39;>&#39;,5)->get(); 或者
        DB::table(&#39;tablename&#39;)->whereBetween(&#39;id&#39;,[2,5])->get();  闭包之间
        DB::table(&#39;tablename&#39;)->whereIn(&#39;id&#39;,[2,5,9])->get();
        DB::table(&#39;tablename&#39;)->whereNotIn(&#39;id&#39;,[2,5,9])->get();
        DB::table(&#39;tablename&#39;)->whereNull(&#39;id&#39;)->get();  为空的话就可以查询出来
        DB::table(&#39;tablename&#39;)->take(3)->get();  只查询3个
        DB::table(&#39;tablename&#39;)->limit(3)->get();  只查询3个
        DB::table(&#39;tablename&#39;)->skip(2)->take(3)->get();  只查询3个跳过第二个
        DB::table(&#39;tablename&#39;)->where(&#39;id&#39;,&#39;!=&#39;,2)->pluck(&#39;title&#39;); 只返回它的title
        DB::table(&#39;tablename&#39;)->count();  有多少条记录
        DB::table(&#39;tablename&#39;)->max(&#39;id&#39;);
        DB::table(&#39;tablename&#39;)->min(&#39;id&#39;);
        DB::table(&#39;tablename&#39;)->avg(&#39;id&#39;);
        DB::table(&#39;tablename&#39;)->sum(&#39;id&#39;);
Salin selepas log masuk

多表关联

在Post中定义

public function comment(){ return $this->hasMany(&#39;Comment&#39;,&#39;post_id&#39;) }
 正向关联   一对多   一对一是hasOne
Salin selepas log masuk

在Comment中定义

public function post(){ return $this->belongsTo(&#39;Post&#39;,&#39;post_id&#39;) }
  反向关联
Salin selepas log masuk

取得关联值

    Post::find(2)->comment  就可以得到Comment这张表的内容   //这样查询一个是可以的  查询多个就要设置预载入
            查询多个
                Post::with(&#39;comment&#39;)->get();
                Post::with([&#39;comment&#39;=>function($query){$query->where(&#39;id&#39;,&#39;>&#39;,2)}])->get();  加条件
Salin selepas log masuk

感谢大家的阅读,希望大家有所收益。

本文转自:https://blog.csdn.net/Happy_CSDN/article/details/49363219

推荐教程:《php教程

Atas ialah kandungan terperinci 在php中如何学习laravel框架(菜鸟初学者). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Apr 01, 2025 am 07:45 AM

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Apr 01, 2025 am 09:09 AM

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Laravel fasih orm dalam carian model separa Bangla) Laravel fasih orm dalam carian model separa Bangla) Apr 08, 2025 pm 02:06 PM

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

Migrasi Pangkalan Data Laravel Encounters Duplikat Definisi Kelas: Bagaimana untuk menyelesaikan pendua Penjanaan fail penghijrahan dan konflik nama kelas? Migrasi Pangkalan Data Laravel Encounters Duplikat Definisi Kelas: Bagaimana untuk menyelesaikan pendua Penjanaan fail penghijrahan dan konflik nama kelas? Apr 01, 2025 pm 12:21 PM

Masalah definisi kelas pendua semasa penghijrahan pangkalan data Laravel berlaku. Apabila menggunakan rangka kerja Laravel untuk penghijrahan pangkalan data, pemaju mungkin menghadapi "kelas telah digunakan ...

See all articles