最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Symfony數(shù)據(jù)校驗(yàn)方法實(shí)例分析

 更新時間:2015年01月26日 10:21:38   投稿:shichen2014  
這篇文章主要介紹了Symfony數(shù)據(jù)校驗(yàn)方法,實(shí)例分析了Symfony數(shù)據(jù)校驗(yàn)的常見技巧與注意事項(xiàng),具有一定參考借鑒價值,需要的朋友可以參考下

本文實(shí)例講述了Symfony數(shù)據(jù)校驗(yàn)方法。分享給大家供大家參考。具體分析如下:

校驗(yàn)在web應(yīng)用程序中是一個常見的任務(wù)。數(shù)據(jù)輸入到表單需要被校驗(yàn)。數(shù)據(jù)在被寫入數(shù)據(jù)庫之前或者傳入一個webservice時也需要被校驗(yàn)。

Symfony2 配備了一個Validator 組件,它讓校驗(yàn)工作變得簡單易懂。該組件是基于JSR303 Bean校驗(yàn)規(guī)范。一個Java規(guī)范用在PHP中。

基本驗(yàn)證

理解校驗(yàn)的最好方法是看它的表現(xiàn)。首先,假設(shè)你已經(jīng)創(chuàng)建了一個用于你應(yīng)用程序某個地方的PHP對象。

復(fù)制代碼 代碼如下:
//src/Acme/BlogBundle/Entity/Author.php
namespace Acme\BlogBundle\Entity;

class Author
{
    public $name;
}

到現(xiàn)在為止,它只是個服務(wù)于你應(yīng)用程序的某些目的的普通的類。而校驗(yàn)的目的就是要告訴你對象的數(shù)據(jù)是否合法。為了這個目的,你需要配置一個對象必須遵守規(guī)則或者約束列表來讓自己的數(shù)據(jù)合法。這些規(guī)則可以被描述成多種不同的格式的(比如,YAML,XML,類聲明或者PHP)。比如,我們保證屬性$name不能為空,來添加下面的規(guī)則:

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    properties:
         name:
            - NotBlank: ~

類聲明格式:
復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
   /**
    * @Assert\NotBlank()
    */
    public $name;
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">

    <class name="Acme\BlogBundle\Entity\Author">
        <property name="name">
            <constraint name="NotBlank" />
        </property>
    </class>
</constraint-mapping>

PHP代碼格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;

class Author
{
   public $name;
  
   public static function loadValidatorMetadata(ClassMetadata $metadata)
   {
       $metadata->addPropertyConstraint('name', new NotBlank());
   }
}

Protected和private屬性以及getter方法也都可以被校驗(yàn)。

使用validator服務(wù):

接下來,使用validator服務(wù)的validate方法來真正的校驗(yàn)Author對象。 validator的工作很簡單:讀取一個類的約束規(guī)則來校驗(yàn)一個對象的數(shù)據(jù)是否符合這些規(guī)則約束。如果校驗(yàn)失敗,一個錯誤數(shù)組將被返回?,F(xiàn)在我們在一個controller中來執(zhí)行它:

復(fù)制代碼 代碼如下:
use Symfony\Component\HttpFoundation\Response;
use Acme\BlogBundle\Entity\Author;
//...

public function indexAction()
{
   $author = new Author();
   //... 對$auother對象做些什么
  
   $validator = $this->get('validator');
   $errors = $validator->validate($author);

   if(count($errors) >0){
     return new Response(print_r($errors, true));
   }else{
     return new Response('The author is valid! Yes!');
   }
}

如果$name 屬性為空,你將看到下面的錯誤信息:

Acme\BlogBundle\Author.name:
     This value should not be blank

如果你為$name屬性插入一個值,那么你會獲得快樂的成功信息。

大多數(shù)時候,你不需要直接跟validator服務(wù)交流或者根本不需要擔(dān)心打印出錯誤來。

大多數(shù)情況下,你將在處理提交表單數(shù)據(jù)時間接使用校驗(yàn)。

你也可以傳遞一個錯誤信息集合到一個模版:

復(fù)制代碼 代碼如下:
if(count($errors)>0){
   return $this->render('AcmeBlogBundle:Author:validate.html.twig',array(
        'errors' => $errors,
   ));
}else{
  //...
}

在模版中,你可以根據(jù)需要精確的輸出錯誤列表:

Twig格式:

復(fù)制代碼 代碼如下:
{# src/Acme/BlogBundle/Resources/views/Author/validate.html.twig #}
<h3>The author has the following errros</h3>
<ul>
{% for error in errors %}
    <li>{{ error.message }}</li>
{% endfor %}
</ul>

校驗(yàn)和表單

validator服務(wù)可以被用于任何時候校驗(yàn)任何對象。 事實(shí)上,你將經(jīng)常在處理表單時間接使用validator。Symfony的表單類庫間接使用validator服務(wù)來在數(shù)據(jù)被提交和綁定后校驗(yàn)底層對象。對象違反約束信息將被轉(zhuǎn)化到FieldError對象,該對象可以很容易的被展示在你的表單中。在一個controller中的傳統(tǒng)表單提交流程如下:

復(fù)制代碼 代碼如下:
use Acme\BlogBundle\Entity\Author;
use Acme\BlogBundle\Form\AuthorType;
use Acme\Component\HttpFoundation\Request;
//...

public function updateAction(Request $request)
{
    $author = new Acme\BlogBundle\Entity\Author();
    $form = $this->createForm(new AuthorType(),$author);

    if($request->getMethod() =='POST'){
       $form->bindRequest($request);
 
       if($form->isvalid()){
          //對$author做一些操作
          return $this->redirect($this->generateUrl('...'));
       }
     }

     return $this->render('BlogBundle:Author:form.html.twig',array(
         'form' => $form->createView(),
     ));
}

配置:

Symfony2 的validator默認(rèn)情況下是可用的。但是如果你使用了生命方法來指定你的約束,那么你需要顯式的開啟聲明功能:

YAML格式:

復(fù)制代碼 代碼如下:
# app/config/config.yml
framework:
   validation: {enable_annotations: true }

XML格式:
復(fù)制代碼 代碼如下:
<!-- app/config/config.xml -->
<framework:config>
   <framework:validation enable-annotations="true" />
</framework:config>

PHP代碼格式:
復(fù)制代碼 代碼如下:
// app/config/config.php
$contianer->loadFromExtension('framework',array('validation'=> array(
     'enable_annotations'=>true,
)));

約束規(guī)則

Validator是設(shè)計了用來按照約束規(guī)則校驗(yàn)對象的。為了校驗(yàn)一個對象,只需要映射一個或者多個約束到它要校驗(yàn)的類然后把它傳遞給validator服務(wù)即可。

本質(zhì)上,一個約束就是一個簡單的PHP對象,它可以生成一個決斷語句。 在現(xiàn)實(shí)生活中,一個約束可以是"蛋糕不能烤焦了" 這樣的規(guī)則約束。在Symfony2中,約束都差不多:他們決斷某個條件是否成立。給定一個值,約束會告訴你這個值是否遵守了你的約束規(guī)則。

Symfony2 支持的約束規(guī)則

首先是基礎(chǔ)約束規(guī)則:使用他們來決斷非?;镜氖?,比如你對象屬性的值或者方法的返回值。

NotBlank,Blank,NotNull,Null,True,False,Type

  字符串約束:Email,MinLength,MaxLength,Url,Regex,Ip等
  數(shù)字約束:Max,Min
  日期約束:Date,DateTime和Time
  集合約束:Choice,Collection,UniqueEntity,Language,Locale和Country等。
  文件約束:File,Image
  其它約束:Callback,All,Valid

你也可以創(chuàng)建自己的自定義約束。

約束配置:

一些約束,比如NotBlank,很簡單,但是其它的比如Choice約束,有許多配置項(xiàng)需要設(shè)置。假設(shè)Author類有另外一個屬性,gener可以被設(shè)置為”male"或者"female":

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    properties:
         gener:
            - Choice: { choices: [male, female], message: Choos a valid gender. }

類聲明格式:
復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
   /**
    * @Assert\Choice(
    *     choices = {"male","female"},
    *     message = "Choose a valid gender."
    * )
    */
    public $gender;
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">

    <class name="Acme\BlogBundle\Entity\Author">
        <property name="gender">
            <constraint name="Choice">
                <option name="choices">
                    <value>male</value>
                    <value>female</value>
                </option>
                <option name="message">Choose a valid gender.</option>
            </constraint>
        </property>
    </class>
</constraint-mapping>

PHP代碼格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;

class Author
{
    public $gender;

    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('gender', new Choice(array(
            'choices' => array('male', 'female'),
            'message' => 'Choose a valid gender.',
        )));
    }
}

一個約束的選項(xiàng)通常都是通過一個數(shù)組來傳遞的。有些約束也允許你傳遞一個值。"default"在數(shù)組中是可選的。在Choice約束時,choices選項(xiàng)就可以通過這種方式指定。

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    properties:
        gender:
            - Choice: [male, female]

類聲明格式:
復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    /**
     * @Assert\Choice({"male", "female"})
     */
    protected $gender;
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<?xml version="1.0" encoding="UTF-8" ?>
<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">

    <class name="Acme\BlogBundle\Entity\Author">
        <property name="gender">
            <constraint name="Choice">
                <value>male</value>
                <value>female</value>
            </constraint>
        </property>
    </class>
</constraint-mapping>

PHP格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\Choice;

class Author
{
    protected $gender;

    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('gender', new Choice(array('male', 'female')));
    }
}

約束目標(biāo)

約束可以被用于一個類的屬性或者一個公共的getter方法。屬性約束最常用也最簡單,而公共的getter方法約束則允許你指定一個復(fù)雜的約束規(guī)則。

屬性約束:

校驗(yàn)類的屬性石一個最常規(guī)的校驗(yàn)技術(shù)。Symfony2允許你校驗(yàn)private,protected或者public屬性。下面代碼顯示如何配置Author對象的$firstName屬性至少有3個字符:

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    properties:
        firstName:
            - NotBlank: ~
            - MinLength: 3

類聲明格式:
復(fù)制代碼 代碼如下:
// Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    /**
     * @Assert\NotBlank()
     * @Assert\MinLength(3)
     */
    private $firstName;
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
    <property name="firstName">
        <constraint name="NotBlank" />
        <constraint name="MinLength">3</constraint>
    </property>
</class>

PHP代碼格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\MinLength;

class Author
{
    private $firstName;

    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('firstName', new NotBlank());
        $metadata->addPropertyConstraint('firstName', new MinLength(3));
    }
}

Getters

約束也可以應(yīng)用于一個方法的返回值。Symfony2 允許你添加一個約束到任何"get"或者 "is"開頭的public方法。該技術(shù)的好處是允許你動態(tài)的校驗(yàn)?zāi)愕膶ο蟆1热?,假設(shè)你想確認(rèn)密碼字段不匹配用戶的first name(因?yàn)榘踩?。你可以通過創(chuàng)建一個idPasswordLegal 方法,然后決斷這個方法必須返回true:

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\Author:
    getters:
        passwordLegal:
            - "True": { message: "The password cannot match your first name" }

類聲明格式:
復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    /**
     * @Assert\True(message = "The password cannot match your first name")
     */
    public function isPasswordLegal()
    {
        // return true or false
    }
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\Author">
    <getter property="passwordLegal">
        <constraint name="True">
            <option name="message">The password cannot match your first name</option>
        </constraint>
    </getter>
</class>

PHP代碼格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/Author.php
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\True;

class Author
{
    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addGetterConstraint('passwordLegal', new True(array(
            'message' => 'The password cannot match your first name',
        )));
    }
}

現(xiàn)在我們創(chuàng)建一個isPasswordLegal()方法,并且包含你需要邏輯:

復(fù)制代碼 代碼如下:
public function isPasswordLegal()
{
   return ($this->firstName != $this->password);
}

眼尖的人可能會注意到getter的前綴("get"或者"is")在映射時被忽略了。這允許你在不改變校驗(yàn)規(guī)則的前提下,把一個約束移動到一個具有同名屬性上,反之亦然。

類:

一些約束應(yīng)用到整個類被校驗(yàn)上面。比如,Callback約束是一個通用約束,它可以應(yīng)用到類自身。當(dāng)類被校驗(yàn)時,被約束描述的方法只是被執(zhí)行這樣每一個可以提供更個性化的校驗(yàn)。

校驗(yàn)分組

到目前為止,你已經(jīng)能夠添加約束到類并詢問是否該類傳入所有定義的約束規(guī)則。一些情況下,你只需要使用該類的其中某些規(guī)則來校驗(yàn)一個對象。要做到這些,你可以組織每一個約束到一個或者多個校驗(yàn)組中,然后應(yīng)用使用其中一組校驗(yàn)。比如,假設(shè)你有一個User類,它會在用戶注冊和用戶更新他們的聯(lián)系信息時使用。

YAML格式:

復(fù)制代碼 代碼如下:
# src/Acme/BlogBundle/Resources/config/validation.yml
Acme\BlogBundle\Entity\User:
    properties:
        email:
            - Email: { groups: [registration] }
        password:
            - NotBlank: { groups: [registration] }
            - MinLength: { limit: 7, groups: [registration] }
        city:
            - MinLength: 2

類聲明格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/User.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Validator\Constraints as Assert;

class User implements UserInterface
{
    /**
    * @Assert\Email(groups={"registration"})
    */
    private $email;

    /**
    * @Assert\NotBlank(groups={"registration"})
    * @Assert\MinLength(limit=7, groups={"registration"})
    */
    private $password;

    /**
    * @Assert\MinLength(2)
    */
    private $city;
}

XML格式:

復(fù)制代碼 代碼如下:
<!-- src/Acme/BlogBundle/Resources/config/validation.xml -->
<class name="Acme\BlogBundle\Entity\User">
    <property name="email">
        <constraint name="Email">
            <option name="groups">
                <value>registration</value>
            </option>
        </constraint>
    </property>
    <property name="password">
        <constraint name="NotBlank">
            <option name="groups">
                <value>registration</value>
            </option>
        </constraint>
        <constraint name="MinLength">
            <option name="limit">7</option>
            <option name="groups">
                <value>registration</value>
            </option>
        </constraint>
    </property>
    <property name="city">
        <constraint name="MinLength">7</constraint>
    </property>
</class>

PHP代碼格式:

復(fù)制代碼 代碼如下:
// src/Acme/BlogBundle/Entity/User.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\MinLength;

class User
{
    public static function loadValidatorMetadata(ClassMetadata $metadata)
    {
        $metadata->addPropertyConstraint('email', new Email(array(
            'groups' => array('registration')
        )));

        $metadata->addPropertyConstraint('password', new NotBlank(array(
            'groups' => array('registration')
        )));
        $metadata->addPropertyConstraint('password', new MinLength(array(
            'limit'  => 7,
            'groups' => array('registration')
        )));

        $metadata->addPropertyConstraint('city', new MinLength(3));
    }
}

這里我們配置了兩個校驗(yàn)組:
      default默認(rèn)組: 包括所有沒有分配到任何組的約束規(guī)則
      registration: 只包含了email和password字段的校驗(yàn)規(guī)則

告訴validator使用指定的校驗(yàn)組,傳一個或者多個組名作為validate()方法的第二個參數(shù)即可:

復(fù)制代碼 代碼如下:
$errors = $validator->validate($author,array('registration'));

值和數(shù)組校驗(yàn)

到目前為止,我們已經(jīng)看了如何校驗(yàn)整個對象。但是有時候,我們可能想值校驗(yàn)一個單獨(dú)的值,比如校驗(yàn)一個字符串是不是一個合法的email地址。這非常簡單,在Controller類中進(jìn)行如下:

復(fù)制代碼 代碼如下:
// 在controller類前引用相應(yīng)的校驗(yàn)命名空間
use Symfony\Component\Validator\Constraints\Email;

public function addEmailAction($email)
{
    $emailConstraint = new Email();
    // 所有的校驗(yàn)選項(xiàng)(options)都可以這樣設(shè)置
    $emailConstraint->message = 'Invalid email address';

    // 使用validator來校驗(yàn)一個值
    $errorList = $this->get('validator')->validateValue($email, $emailConstraint);

    if (count($errorList) == 0) {
        // 這是一個合法的email地址,可以做些什么
    } else {
        // 這是一個非法的email地址
        $errorMessage = $errorList[0]->getMessage()

        // 做一些錯誤處理
    }

    // ...
}

通過調(diào)用validator的validateValue方法,你可以傳入一個原始值和一個你要使用的校驗(yàn)對象。該方法會返回一個ConstraintViolationList對象,它扮演的只是一個錯誤信息數(shù)組的角色。集合中的每一個錯誤是一個ConstraintViolation對象,使用對象的getMessage方法可以獲取錯誤信息。

總結(jié):

Symfony2 的validator是一個強(qiáng)大的工具,它可以被用來保證任何對象數(shù)據(jù)的合法性。它的強(qiáng)大來源于約束規(guī)則,你可以把它們應(yīng)用于你對象的屬性和getter方法。其實(shí),你大多數(shù)情況下都是在使用表單時,間接的應(yīng)用了校驗(yàn)框架,記住它可以被應(yīng)用于任何地方校驗(yàn)任何對象。

希望本文所述對大家的Symfony框架程序設(shè)計有所幫助。

相關(guān)文章

  • Yii框架實(shí)現(xiàn)對數(shù)據(jù)庫的CURD操作示例

    Yii框架實(shí)現(xiàn)對數(shù)據(jù)庫的CURD操作示例

    這篇文章主要介紹了Yii框架實(shí)現(xiàn)對數(shù)據(jù)庫的CURD操作,結(jié)合實(shí)例形式分析了Yii框架連接數(shù)據(jù)庫與CURD增刪改查等常見操作技巧,需要的朋友可以參考下
    2019-09-09
  • thinkPHP模板中函數(shù)的使用方法示例

    thinkPHP模板中函數(shù)的使用方法示例

    這篇文章主要介紹了thinkPHP模板中函數(shù)的使用方法,結(jié)合實(shí)例形式對比分析了php函數(shù)的單獨(dú)使用與thinkPHP模板中php函數(shù)的相應(yīng)使用技巧,需要的朋友可以參考下
    2016-11-11
  • Thinkphp調(diào)用Image類生成縮略圖的方法

    Thinkphp調(diào)用Image類生成縮略圖的方法

    這篇文章主要介紹了Thinkphp調(diào)用Image類生成縮略圖的方法,實(shí)例分析了Thinkphp調(diào)用Image類生成縮略圖的使用原理與相關(guān)技巧,需要的朋友可以參考下
    2015-03-03
  • 淺談mysql_query()函數(shù)的返回值問題

    淺談mysql_query()函數(shù)的返回值問題

    下面小編就為大家?guī)硪黄獪\談mysql_query()函數(shù)的返回值問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • yii,CI,yaf框架+smarty模板使用方法

    yii,CI,yaf框架+smarty模板使用方法

    這篇文章主要介紹了yii,CI,yaf框架+smarty模板使用方法,結(jié)合實(shí)例形式介紹了yii,CI及yaf框架整合smaryt模板的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • Laravel5框架自定義錯誤頁面配置操作示例

    Laravel5框架自定義錯誤頁面配置操作示例

    這篇文章主要介紹了Laravel5框架自定義錯誤頁面配置操作,結(jié)合具體實(shí)例形式分析了Laravel5自定義錯誤頁面的原理、操作步驟及相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-04-04
  • PHP array_reduce()函數(shù)的應(yīng)用解析

    PHP array_reduce()函數(shù)的應(yīng)用解析

    這篇文章主要介紹了PHP array_reduce()的應(yīng)用,本文通過代碼舉例給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • 詳解js異步文件加載器

    詳解js異步文件加載器

    這篇文章主要為大家介紹了js異步文件加載器的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Zend Framework教程之Loader以及PluginLoader用法詳解

    Zend Framework教程之Loader以及PluginLoader用法詳解

    這篇文章主要介紹了Zend Framework教程之Loader以及PluginLoader用法,結(jié)合實(shí)例形式詳細(xì)分析了Zend Framework自動加載機(jī)制的原理,使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2016-03-03
  • Laravel框架中自定義模板指令總結(jié)

    Laravel框架中自定義模板指令總結(jié)

    Blade 允許你自定義命令,你可以使用 directive 方法注冊命令。下面這篇文章主要給大家總結(jié)介紹了關(guān)于Laravel框架中自定義模板指令的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2017-12-12

最新評論

永州市| 淮北市| 静宁县| 青浦区| 萍乡市| 波密县| 沈丘县| 湖南省| 崇左市| 越西县| 武陟县| 武穴市| 金华市| 天气| 甘谷县| 朔州市| 广河县| 察隅县| 丁青县| 花莲市| 石阡县| 金山区| 平乡县| 玉溪市| 宁安市| 浦北县| 玉田县| 陕西省| 辽中县| 林周县| 尚义县| 亚东县| 邵武市| 离岛区| 北海市| 洪江市| 林芝县| 吉安县| 金塔县| 万年县| 汕尾市|