首页 > 编程技术 > php

laravel 5.1下php artisan migrate的使用注意事项

发布时间:2017-7-6 23:34

本篇文章为大家介绍了,在laravel 5.1下php artisan migrate的使用注意事项,很有一定的参考价值的,一起来看一看吧。

PHP artisan migrate命令是laravel十分重要的问题,但在使用时需要注意几个情况:

(1)在migration文件夹下创建一张新的表,要使用php artisan make:migration语句

php artisan已经拥有强大的功能,就不要自己新建一个表

(2)composer dump-autoload的使用

composer   dump-autoload是用来更新vendor/composer/autoload_classmap.php文件的,这个文件有许多配置,使用php  artisan命令时就是事先调用这个文件。在新添加一张表时,先执行这个命令,在使用migrate。在删除一张表示,先使用migrate:rollback,再使用composer,在删除文件。

执行这条语句将修改laravel框架内vendor/composer/文件夹下的所有文件

(3)安装composer

有可能使用composer时显示命令不存在,这时就要安装composer。

 

 代码如下复制代码

php -r"readfile('https://getcomposer.org/installer');"> composer-setup.php

 

php composer-setup.php

 

php -r"unlink('composer-setup.php');"

 

执行第一条命令下载下来的 composer-setup.php 脚本将简单的检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的composer.phar    文件到当前目录。

上述 3 条命令的作用依次是:

全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

Mac 或 Linux 系统:打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到/usr/local/bin/ 目录下面:

 代码如下复制代码
sudomvcomposer.phar/usr/local/bin/composer
选择法也算是入门的一种排序算法,它的方法十分巧妙,下面我们就来为大家介绍一下Python实现选择排序的方法,有需要的可以来参考一下。

选择排序:

选择排序(Selection sort)是一种简单直观的 排序算法  。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将被移到其最终位置上,因此对n个元素的表进行排序总共进行至多n-1次交换。在所有的完全依靠交换去移动元素的排序方法中,选择排序属于非常好的一种。

Python 实现:

 

 代码如下复制代码

# selection_sort.py

defselection_sort(arr):

  count=len(arr)

  foriinrange(count-1): # 交换 n-1 次

    min=i

    # 找最小数

    forjinrange(i, count):

      ifarr[min] > arr[j]:

        min=j

    arr[min], arr[i]=arr[i], arr[min] # 交换

  returnarr

 

my_list=[6,23,2,54,12,6,8,100]

print(selection_sort(my_list))

 

原文链接:http://www.cnblogs.com/tingshuo123/p/6935445.html

本篇文章主要介绍了Python递归函数定义与用法,有需要的朋友可以来参考一下。

本文实例讲述了Python递归函数定义与用法。分享给大家供大家参考,具体如下:

递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。
于是,fact(n)用递归的方式写出来就是:

 

 代码如下复制代码

deffact(n):

ifn==1:

  return1

returnn*fact(n-1)

 

上面就是一个递归函数。可以试试:

 

 代码如下复制代码

>>> fact(1)

1

>>> fact(5)

120

>>> fact(100)

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000L

 

如果我们计算fact(5),可以根据函数定义看到计算过程如下:

 

 代码如下复制代码

===> fact(5)

===>5*fact(4)

===>5*(4*fact(3))

===>5*(4*(3*fact(2)))

===>5*(4*(3*(2*fact(1))))

===>5*(4*(3*(2*1)))

===>5*(4*(3*2))

===>5*(4*6)

===>5*24

===>120

 

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算

 代码如下复制代码

fact(10000)。

defdigui(n):

  sum=0

  ifn<=0:

    return1

  else:

    returnn*digui(n-1)

print(digui(5))

 

文章主要给大家介绍了关于Yii2中简单的场景使用的相关资料,很有学习的价值,有兴趣的朋友就来学习起来吧。

本文主要介绍的是关于Yii2简单场景使用的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

直接上代码(主要部分):

模型层:

 

 代码如下复制代码

publicfunctionrules()

{

 return[

  [['name','account','pwd'],'string','max'=> 11],

  ['account','required','message'=>'用户名不能为空'],

  ['pwd','required','message'=>'密码不能为空','on'=>'update']

 ];

}

 

控制器:

 

 代码如下复制代码

$model=newUser();

if(isset($_POST['User'])){

 $model-> attributes = Yii::$app->request->post('User');

 $model-> save();

}

 

这个时候在控制器没有调用任何场景。他的结果是:用户名验证,密码不验证

如果在控制器加上一句$model->scenario='update'其结果是:用户名,密码都验证了

如果这个时候再在模型加上几句代码:

 

 代码如下复制代码

publicfunctionscenarios()

{

 return[

  'update'=>['pwd'],//在该场景下的属性进行验证,其他场景和没有on的都不会验证

 ];

}

 

其结果是:用户名没有验证,密码验证了

还有要注意如果你在模型里重写了scenarios()方法,在控制器调用了场景,那调用的场景名称必须在scenarios()方法里有,否则出错!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助。

标签:[!--infotagslink--]

您可能感兴趣的文章: