您正在查看: 标签 laravel 下的文章

Laravel 图床与颜值检测结晶

前要

本人曾经发过这样两个帖子

检测颜值包,基于微软小冰 以及 用 Laravel 写了一个图床网站

项目

HanSon/faceHanSon/img

如今终于两个项目结合在一起了 体验传送门

效果图

穿衣风格效果图(会在新窗口弹出,记得在浏览器允许):

file

file

file

file

file

小结

因为微软小冰曾经做过一次升级,导致 SDK 暂时不可用,今天也花了点时间修复并且结合在图床中,图床代码大家看看就好,没有过多的优化。

图床有很多不足,只是一个 demo 级别的项目,例如图片大小都没有控制,仅仅娱乐,大家不要玩坏了。

用 Laravel 写了一个图床网站

file

项目地址: https://github.com/HanSon/img

体验地址: http://img.hanc.cc/

抽了一天时间写了这个基于 https://sm.ms/ 的图床小站,尽管说是用 laravel ,但是后端几乎没有什么工作量,大概也就20行的后端代码,几乎都是前端的工作为主。

前端主要了解了 drag & drop 以及 clipboard 这个库。

纯粹闲的蛋疼

file

laravel5.3的bug 无法在一个项目中使用多个同一数据库驱动

最近做项目掉进一个深坑,以至于一个小问题烦恼我两天以至于怀疑人生。

新项目需要连接两个mysql数据库,然而却出现无论如何也查询不了第二个数据库的情况。

经历了多次断点调试,google无止境搜索,询问印度阿三无果的情况下,也只能查看源码解决问题了。

最终发现在laravel的ConnectionFactory类的createConnection方法中有这么一段

protected function createConnection($driver, $connection, $database, $prefix = '', array $config = [])
{
    if ($this->container->bound($key = "db.connection.{$driver}")) {
        return $this->container->make($key, [$connection, $database, $prefix, $config]);
    }

    switch ($driver) {
        case 'mysql':
            return new MySqlConnection($connection, $database, $prefix, $config);
        case 'pgsql':
            return new PostgresConnection($connection, $database, $prefix, $config);
        case 'sqlite':
            return new SQLiteConnection($connection, $database, $prefix, $config);
        case 'sqlsrv':
            return new SqlServerConnection($connection, $database, $prefix, $config);
    }

    throw new InvalidArgumentException("Unsupported driver [$driver]");
}

$this->container->bound($key = "db.connection.{$driver}") 通过driver去跟容器做了绑定,也就是当你有第二个一样driver的数据库时,调用 $this->container->make()方法也会同样返回第一个绑定的 connection,这样无论如何也只能查询第一个了。

修改后

if ($this->container->bound($key = "db.connection.{$driver}.{$config['name']}")) {
    return $this->container->make($key, [$connection, $database, $prefix, $config]);
}

通过传入connection自定义的名称,能够避免重复

只可惜我提PR时对方表示5.3不作bug修复,很诧异。。。

PR在此
issue在此

laravel Encryption 详解

- 阅读剩余部分 -

laravel的artisan命令

新建控制器
php artisan make:controller Admin/AdminHomeController
新建model
php artisan make:model Comment
新建migration
php artisan make:migration create_comments_table
生成密匙
php artisan key:generate
执行生成数据库操作
php artisan migrate