php菜鸟笔记,laravel 入门教程

安装 Laravel:

查看laravel包: composer search laravel

查看所有版本: composer show -all laravel/laravel

首先,通过 Composer 安装 Laravel 安装器:composer global require "laravel/installer"

你还可以在终端中通过 Composer 的 create-project 命令来安装 Laravel 应用,下载5.4版本使用这个命令:

composer create-project --prefer-dist laravel/laravel blog 5.4.*

如果缺少vendor文件在当前文件夹下执行命令:composer install

配置 Laravel:

在 .env 文件中添加 key ; 生成key :php artisan key:generate

开启'debug' => env('APP_DEBUG', true), 在 \config\app.php 文件中

其他配置....

配置路由:

在 \routes\wab.php 页面,详情看文档

路由的从命名:

    直接显示输出:Route::get('as',['as'=>'ass', function () { echo route('ass'); }]);或:Route::get('as', function () { echo route('ass'); })->name('ass');

    控制器路由:Route::get('index','IndexController@index')->name('index');

    通过辅助函数 route 为该命名路由生成 URL,可以有第二个参数。

路由群组:共享属性以数组的形式参数传递给 Route::group 方法。

    路由前缀:['prefix' => 'admin']   // 匹配 "/admin" URL

    命名空间:['namespace' => 'Admin'] // 控制器在 "App\Http\Controllers\Admin" 命名空间下

    中间件: ['middleware' => 'auth'] // 使用 Auth 中间件

    子域名路由:['domain' => '{account}.[myapp.com](http://myapp.com/)']

    Route::group(['namespace' => 'Admin'], function(){       });

视图传值:

给视图传一个值:return view('greeting', ['name' => 'James']);或: return view('greeting')->with('name', 'James');

给admin下的profile传一个$data数组值 :return view('admin.profile', $data);

返回上一个视图:return back();

跳转页面:return redirect('跳转的页面');

Blade模板:

输出变量:{{ $name }}

输出js代码:{!! $name !!}

不解析这个:@{{ name }}

给一个默认值:{{ $name or "这是默认值" }}

三元运算符:{{ isset($name) ? $name : "假就用这个" }}

if:    @if ($str > 60)

            真显示

        @else

            假显示

        @endif

unless: 除非/如果不 /  除…之外

    @unless ($str > 60)

        除了 $str > 60 的,其他的都显示

    @endunless

for:   @for ($i = 0; $i < 10; $i++)

            {{ $i }}

        @endfor

foreach:   @foreach ($users as $user)

                

{{ $user->id }}

@endforeach forelse:是foreach 的补充,有就显示,没有就走下面的 @forelse ($users as $user)
  • 有就显示
  • @empty

    没有就走下面的

    @endforelse while: @while (true)

    I'm looping forever.

    @endwhile 引人模版:@include( '路径.模版名' ); 引人内容,要替换的部分: @yield('title') @yield('content') @section('sidebar') This is the master sidebar. @show 替换内容: @extends('layouts.app') :先引入要替换的页面,像父类一样 @section('title', 'Page Title') @section('sidebar') @parent :这个显示sidebar 中默认的内容

    This is appended to the master sidebar.

    @endsection @section('content')

    This is my body content.

    @endsection

    Model操作:

    创建model: php artisan make:model 文件名/userModel
    
    model的约定:
    
        在laravel中约定(非强制),表名叫xxs,复数形式.类和表名有关系,一般表名去掉s,即为Model的类名.
    
        表名的约定 默认表名为Model名+s,可能通过的model类的table属性来指定表名.
    
        id的约定 Model默认认为,每张表都有一个叫做id的主键,你可以通过primaryKey属性来指定主键列名.
    
        不想要created_at,updated_at字段,可以把model的timestamps属性设为false
    
            class XxModel extends Model {
    
                protected $table = 'yourTableName';//指定表名
    
                protected $primaryKey = 'Xx_id'; //设置主键
    
                public $timestamps = false; //去掉created_at,updated_at字段
    
            }
    
    继承自:Illuminate\Database\Eloquent\Model
    
    实例化Model:
    
        $model = new App\Xxx(); // 得到Xx表的Model,且不与表中任何行对应.
    
        $model = Xxx::find($id); // 得到Xx表的Model,且与$id行数据对应.
    
    增:
    
        public function add() {
    
            $msg = new Msg();
    
            $msg->title = $_POST['title'];
    
            $msg->content= $_POST['title'];
    
            return $msg->save() ? 'OK' : 'fail';
    
        }
    
    查:
    
        查单行: find()与first()
    
            Msg::find($id) // 按id查
    
            Msg::where('id','>',3)->first();// 按where条件查
    
        查多行: all()和get()
    
            Msg::all(['列1','列2']);// 无条件查所有行. select 列1,列2 from msgs;
    
            Msg::where('id','>',2)->get(['列1','列2']);// 按条件查多行
    
    改:
    
        public function up($id) {
    
            if( empty($_POST) ) {
    
                $msg = Msg::find($id);
    
                return view('msg.up',['msg'=>$msg]);
    
            }else {
    
                $msg = Msg::find($id);
    
                $msg->title = $_POST['title'];
    
                $msg->content= $_POST['content'];
    
                return $msg->save() ? 'OK' : 'fail';
    
            }
    
        }
    
    删:
    
        public function del($id) {
    
            $msg = Msg::find($id);
    
            return $msg->delete() ? 'ok' : 'fail';
    
        }
    
    复杂查询:// select .. where id>2 order by id desc limit 2,1;
    
        Msg::where('id','>',2)->orderBy('id','desc')->skip(2)->take(1)->get();
    
    统计
    
        Msg::count(); //总数
    
        Msg::avg('id'); //平均值
    
        Msg::min('id'); //最小
    
        Msg::max('id'); //最大
    
        Msg::sum('id'); //合计
    
    分组  // 用DB::raw()方法,raw是"裸,不修饰的"意思
    
        Goods::groupBy('cat_id')->get(['cat_id',DB::raw('avg(price)')]) );
    

    数据库:

    引人:use Illuminate\Support\Facades\DB;
    
    测试是否连接成功:$pdo = DB::connection()->getPdo();  dd($pdo);
    
    运行 Select 查询:DB::select('select * from users where active = ?', [1]);
    
    运行插入语句:DB::insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);
    
    运行更新语句: DB::update('update users set votes = 100 where name = ?', ['John']);
    
    运行删除语句:DB::delete('delete from users');
    
    运行一个通用语句:DB::statement('drop table users');
    

    你可能感兴趣的:(php菜鸟笔记,laravel 入门教程)