canihelpyou

662 经验值

Laravel 5.3 的这个文件\vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesUsers.php
中有这样一个方法:


   protected function guard()
    {
        return Auth::guard(); //这个语句是什么意思?返回个什么值?
    }

其中的 Auth::guard() 表示什么意思?返回个什么值?

清除了配置缓存php artisan config:clear,已经可以了。

从本地的windows发布到云主机,本地是可以工作的(wnmp),在云主机上测试执行php artisan migrate,报错如下:

  [PDOException]                                                                         
  SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

env文件是这样的:

APP_ENV=production
APP_KEY=base64:fzg/fitaaaaaaaaaaaaaaaaaaaaaaaa0=
APP_DEBUG=false
APP_LOG_LEVEL=debug
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=test  //用root账户试过
DB_PASSWORD=mysql  

不管env文件中使用root帐号还是test帐号,都会出现上面同样的错误,错误信息中都是显示'root'@'localhost'用户,怎么的呢?好像没有用到env文件,在config/database.php中填入用户名密码也不行,好像是读取不到这些信息。

在终端里面测试是可以连接的:

# mysql -uroot -pmysql;
MariaDB [(none)]> 


# mysql -utest -pmysql;
MariaDB [(none)]> 

在centos7.2上yum安装了php7.1后,配置/etc/php-fpm.d/www.conf文件时,有个listen选项:

listen = 127.0.0.1:9000  //默认是这样的。

视频中说要改成这样:

listen = /var/run/php-fpm.sock

可是系统中没有php-fpm.sock这个文件,用find搜索全部地方,都没有找到。

《从零开始部署 Laravel》系列第3节中执行composer intall的时候云主机要安装vpn吗?
就是这一节:
https://laravist.com/series/deploy-laravel-app-on-vps/episodes/3

在本地windows上执行composer intall的时候要开vpn,否则不能安装。
在云主机上测试,没有vpn也不能安装,错误如下:

[root@hello laravel-test]# composer install
//...省略了一些
    Failed to download symfony/console from dist: The zip extension and unzip command are both missing, skipping.
The php.ini used by your command-line PHP is: /etc/php.ini
    Now trying to download from source
  - Installing symfony/console (v3.1.7)
    Cloning 5be36e1f3ac7ecbe7e34fb641480ad8497b83aa6

                                                                                                                       
  [Symfony\Component\Process\Exception\ProcessTimedOutException]                                                       
  The process "git clone --no-checkout 'https://github.com/symfony/console.git' '/var/www/laravel-test/vendor/symfony  
  /console' && cd '/var/www/laravel-test/vendor/symfony/console' && git remote add composer 'https://github.com/symfo  
  ny/console.git' && git fetch composer" exceeded the timeout of 300 seconds. 

云主机系统是centos,vpn一般没有centos的版本,大家是怎么做的?

使用algolia的时候,可以只添加一张表的部分字段到索引吗?
比如一张articles表,有下面这些字段:

id title content author status created_at updated_at deleted_at

我想只添加前面4个字段即id title content author到索引,可以吗?看了一下Laravel5.3文档的Scout部分,好像没有说到。

第一次执行php artisan make:migration没有错误,
然后我把生成的文件删了,重复执行这个命令,就出现了下面这个错误:

$ php artisan make:migration create_articles_table


  [ErrorException]
  include(D:\wnmp\www\laravel-5-3-dev\vendor\composer/../../database/migratio
  ns/2016_11_27_181313_create_articles_table.php): failed to open stream: No
  such file or directory

怎么办?

站长能否讲一下laravel5.3中的gates和policies。能替代entrust这个package吗?

请求的控制器是这样的:

    public function update(Request $request, $id)
    {
        $goods = Goods::findOrFail($id);
        
        $amount = $request->get('amount');
        
        switch ($amount) {
            case 10:
                $price = Price::findOrFail(1);
                break;
            case 20:
                $price = Price::findOrFail(2);
                break;
            case 30:
                $price = Price::findOrFail(3);
                break;
            default:
                $price = Price::findOrFail(4);
                break;
        }
        $goods->price = $price->price;  //这一句会触发查询Algolia
        return $price;
    }

return $price;会这样报错:


AlgoliaException in Client.php line 748:
Hosts unreachable: Connection timed out after 2000 milliseconds,Could not resolve host: L73SHQWTEB-1.algolianet.com,Could not resolve host: L73SHQWTEB-3.algolianet.com,Could not resolve host: L73SHQWTEB-2.algolianet.com

原因:
Goods模型中使用了algolia,$goods->price = $price->price;会触发到对goods表的查询,所以查询会到algolia的索引数据库中去查询。

class Goods extends Model
{
    use Searchable;//使用algoliasearch-laravel要加上这一句,把这一句注释掉测试,即可正常工作,可是这里需要保留
}

可是这里需要查询本地数据库,要怎么改一下?