精华内容
下载资源
问答
  • 开发者使用 Laravel 部署一个新项目的时候, 通常会使用 seeder 快速填充本地数据以方便开发调试. iseed 扩展包提供了可将数据表里的数据直接转换为 seeder 文件的功能. 本项目由 The EST Group 团队成员 @monkey ...
        

    本文经授权转自 PHPHub 社区

    说明

    开发者使用 Laravel 部署一个新项目的时候, 通常会使用 seeder 快速填充本地数据以方便开发调试.

    iseed 扩展包提供了可将数据表里的数据直接转换为 seeder 文件的功能.

    本项目由 The EST Group 团队成员 @monkey 整理发布, 首发地为 PHPHub 社区.

    使用场景

    通常情况下, 我们会希望本地开发环境数据与生产完全一致, 这样开发者的开发与调试会更加的直观、有效率.
    当我们想将生产环境的数据同步到所有开发者的系统中, 此扩展包将会非常有用.

    文章的 DEMO 项目

    截图

    运行

    Demo 代码请见:
    https://github.com/zhengjinghua/est-isee...

    请参照此文档运行 Demo:
    https://phphub.org/topics/1902

    文章概览

    1. 安装;

    2. 基础用法;

    3. 推荐实践;

    4. 更多用法.

    接下来是详细解说

    安装

    1). 直接运行以下命令安装扩展包

    composer require orangehill/iseed

    2). 在你的 config/app.php 文件中添加 Service Provider

    'providers' => [
        ...
        Orangehill\Iseed\IseedServiceProvider::class,
    ],

    安装结束, 就这么简单.

    基础用法

    导出指定表的数据

    php artisan iseed 后面带上本地数据表的名称, 可直接将数据库表的内容转换为 seeder 文件.

    如下可生成 users 表的 seeder 文件:

    php artisan iseed users

    也可选择同时生成 userstopics seeder 文件:

    php artisan iseed users,topics

    强制覆盖导出文件 -- force

    在命令行后面带上 force 参数, 将强制覆盖原有生成的 seeder 文件, 如下:

    php artisan iseed users --force

    将直接覆盖之前生成的 UsersTableSeeder.php 文件

    根据上面两个命令导出的 UsersTableSeeder.php 文件内容如下图:

    导出指定数据库里的表 -- database

    使用 database 参数, 可指定数据库里的数据表, 如下:

    php artisan iseed users --database=mysql2

    推荐实践

    在实际开发的过程中, 为了不影响生产环境的正常运转, 建议使用以下方式同步开发者的 seed 数据:

    1. 将生产环境的备份数据导入到某一个开发者的电脑中;

    2. 此开发者运行 php artisan iseed ... 生成指定的 seeder 文件;

    3. 将 seeder 文件提交版本管理, 其他人同步更新并导入.

    更多用法

    关于其它更加详尽的命令行, 如: max, prerun, postrun 等使用可查看 原文档.


    欢迎关注 LaravelTips, 一个专注于为 Laravel 开发者服务, 致力于帮助开发者更好的掌握 Laravel 框架, 提升开发效率的微信公众号.

    展开全文
  • laravel的联查询

    2021-04-19 16:34:36
    本文目录一、联查询1.1 创建迁移文件1.2 执行迁移文件1.3 模拟数据(通过填充器)1.4 联查询例子二、关联模型(重点)2.1 一对一关系2.2 一对多关系2.3 多对多关系(抽象) 一、联查询 联要求至少得有2张表...

    一、联表查询

    联表要求至少得有2张表(除了自己【表】连接自己【表】,自联查询),并且还是存在关系的两张表。
    例如:可以建立2张表:文章表、作者表。

    文章表(article):

    id 主键
    Article_name 文章名称,varchar(50),not null
    Author_id 作者id,int,not null

    作者表(author):

    id 主键
    Author_name 作者名称 ,varchar(20),not null

    1.1 创建迁移文件

    php artisan make:migration create_article_table
    php artisan make:migration create_author_table
    在这里插入图片描述
    article加上字段:

    $table->increments('id');
    $table->string('article_name', 50)->comment('文章标题');
    $table->integer('author_id') -> comment('作者id');
    $table->timestamps();
    

    在这里插入图片描述


    author加上字段:

    $table->increments('id');
    $table->string('author_name', 20) -> comment('作者名称');
    $table->timestamps();
    

    在这里插入图片描述


    1.2 执行迁移文件

    然后执行迁移文件:
    php artisan migrate
    在这里插入图片描述
    在这里插入图片描述

    1.3 模拟数据(通过填充器)

    1、创建填充器文件(可以将多个数据表的写入操作写在一起)
    php artisan make:seeder ArticleAndAuthorTableSeeder
    在这里插入图片描述
    2、编写数据模拟的代码
    在这里插入图片描述
    3、执行填充器
    php artisan db:seed --class=ArticleAndAuthorTableSeeder
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1.4 联表查询例子

    要求查询数据表(文章表、作者表),查询出文章的信息包含了作者名称,联表查询一共有:内联表(inner)、左联表(left)、右联表(right)。

    原始sql语句:【左外联表】
    select article.id,article.article_name, author.author_name from article left join author on article.author_id = author.id
    在这里插入图片描述

    将上述的sql语句改成链式操作:

    语法:DB 门面/模型 -> join 联表方式名称(关联的表名,表1的字段,运算符,表2的字段)

    左连接:如果你是想要执行左链接而不是内链接可以使用leftJoin方法,该方法和join方法的用法
    创建路由:
    在这里插入图片描述
    创建方法:
    在这里插入图片描述
    效果:
    在这里插入图片描述

    在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

    展开全文
  • Laravel 用户之间关注

    2017-09-20 15:16:14
    有关用户之间的相互关注这样的应用场景还是很常见的 每个平台都会有这样类似的需求 就比如Segmentfault和知乎 当然还有最熟悉的Github每个人可以有关注者和粉丝 建立模型 这里我们去建立一个中间 可以...

    介绍

    有关用户之间的相互关注这样的应用场景还是很常见的 每个平台都会有这样类似的需求 就比如Segmentfault知乎

    当然还有最熟悉的Github每个人可以有关注者和粉丝

    建立模型表

    这里我们去建立一个中间表 可以想象得到的是这张表里包含了两个用户的id 我们可以去创建一个Model

    $ php artisan make:model Follow -m

    创建完我们的表之后 我们去完善下表的字段信息

    Schema::create('follows', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('follower_id')->unsigned()->index();
        $table->integer('followed_id')->unsigned()->index();
        $table->timestamps();
    });

    定义完毕之后去迁移下数据表

    php artisan migrate

    定义模型方法

    写完我们的数据表 我们是将关注的信息存放在follows这个数据表的 因为这是用户与用户之间的关联 
    并不是之前的用户与帖子或文章这样的模型关联 其实实现的道理是一样的

    我们就可以在User Model里去定义对应的关联

    //用户关注
    public function following()
    {
        return $this->belongsToMany(self::class,'follows','follower_id','followed_id')->withTimestamps();
    }
    
    //用户的粉丝
    public function followers()
    {
        return $this->belongsToMany(self::class,'follows','followed_id','follower_id')->withTimestamps();
    }
    
    //关注用户
    public function followThisUser($user)
    {
        return $this->following()->toggle($user);
    }

    因为用户与用户之间也是一种多对多的关系 所以我将关注用户的方法写成followThisUser

    定义方法路由

    接下来就可以去定义相应的方法路由了 这里为了使用方便我定义了一个控制器

    php artisan make:controller FollowController

    首先我们去定义一下我们的路由

    Route::post('/user/follow','FollowersController@follow');

    如果用户去关注另一个用户的话 只需要去执行follow方法 而这个方法也是一个toggle式的操作

    当然我们在执行

    $follow = $user->followThisUser($userId)

    这个方法是他会返回一个数组对象 如果是执行attach方法的话

    那么$follow['attached']$userId的值

    如果这样的话我们就可以知道followThis这个方法到底是执行了attach还是detach方法了 
    那么接着我们就可以去增加一个用户的粉丝数或者去通知用户发送一个消息这样的操作了

    所以你可以在执行完成之后的逻辑是这样的

    $follow = user()->followThisUser($userId);
    //如果用户关注了另一个用户
    if(count($followed['attached'])>0){
        //可以去通知用户 修改用户的关注人数等数据
        return response()->json(['followed' => true]);
    }

    当然如果我们需要拿到一个用户的关注的人和粉丝的话 可以去执行

    $user->following

    以及

    $user->followers

    这样的话我们就可以拿到对应的用户数据信息了

    其实整个实现起来就和我们对一篇帖子进行点赞一样 只不过对象变成了用户与用户之间


    原文:https://segmentfault.com/a/1190000008880258

    展开全文
  • 今天小编就为大家分享一篇在Laravel 中实现是否关注的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • laravel的数据的迁移

    2021-03-25 20:29:48
    本文目录一、数据的迁移与填充(重点)1.1 数据的迁移操作1.1.2 迁移文件的创建与编写 一、数据的迁移与填充(重点) 迁移:创建数据的操作 + 删除数据的操作。 填充:往数据表里填充写入测试的数据(数据的...

    一、数据表的迁移(重点)

    迁移:创建数据表的操作 + 删除数据表的操作。
    填充:往数据表里填充写入测试的数据(数据的插入操作)。

    1.1 数据的迁移操作

    在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。

    1.1.2 迁移文件的创建与编写

    迁移文件默认的位置:
    在这里插入图片描述
    1、创建迁移文件
    例:需要创建试卷的数据表,假设数据表的名字叫做paper。迁移文件名:create_paper_table

    创建的时候可以通过自动代码生成工具artisan命令来执行迁移文件的生成。
    php artisan make:migration 迁移文件名

    在这里插入图片描述在这里插入图片描述
    在写之前含义如下:
    在这里插入图片描述
    Schema门面(类)是用于操作数据表的门面,调用其具体的方法之后就可以实现创建数据表与删除数据表,语法如上。
    实现试卷表paper的创建:

    id 表的主键,自增
    Paper_name 试卷名称,唯一,varchar(100),不为空
    Total_score 试卷总分,整型数字,tinyint,默认为100
    Start_time 试卷开始考试时间,时间戳类型(整型int)
    Duration 考试时间长度,单位分钟,整型tinyint
    Status 试卷是否启用的状态,1表示启用,2表示禁用,默认为1,tinyint类型。

    在创建数据表的列的时候遵循语法:

    $table 表示整个表的实例
    语法:$table -> 列类型方法(字段名, [长度/值范围]) -> 列修饰方法([修饰的值]);
    列类型方法的作用:指定列的名称并且设置列的类型长度或者其值范围(仅针对枚举)。修饰方法:主要是补充列的一些特征,例如有些列不能为空,或者有默认值等等。
    常见的修饰方法有:
    comment() 添加注释信息
    default() 指定列的默认值
    nullable() 允许该列的值为NULL
    nusigned() 设置无符号的

    常用的列类型:

    列类型 解释
    $table -> string(‘email’) 等同于数据库中的VARCHAR列
    $table -> string(‘name’, 100) 等同于数据库中的VARCHAR,带一个长度
    $table -> increments(‘id’) 数据库主键自增ID
    $table -> tinyInteger(‘numbers’) 等同于数据库中的TINYINT类型
    $table -> integer(‘votes’) 等同于数据库中的INTEGER类型
    $table -> enum(‘choices’, [‘foo’, ‘bar’]) 等同于数据库中的ENUM类型

    创建数据表的迁移代码:

    <?php
    
    use Illuminate\Database\Migrations\Migration;
    use Illuminate\Database\Schema\Blueprint;
    use Illuminate\Support\Facades\Schema;
    
    class CreatePaperTable extends Migration
    {
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('paper', function (Blueprint $table) {
                // id  表的主键、自增
                $table->increments('id') -> comment('自增主键');
                // paper_name  试卷名称,唯一,varchar(100),不为空
                $table->string('paper_name', 100) -> comment('试卷名称') -> unique();
                // Total_score  试卷总分,整型数字,tinyint,默认为100
                $table->tinyInteger('total_score') -> comment('试卷总分') -> default(100);
                //start_time 试卷开始考试时间,时间戳类型(整型int)
                $table->integer('start_time') -> comment('考试开始时间');
                // duration  考试时间长度,单位分钟,整型tinyint
                $table->tinyInteger('duration') -> comment('考试时长');
                // status 试卷是否启用状态:1、表示启用。2、表示禁用。默认为1,tinyint类型
                $table->tinyInteger('status') -> comment('试卷启用状态') -> default(1);
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('paper');
        }
    }
    
    

    如下:
    在这里插入图片描述

    1.2 执行迁移文件

    执行分为up执行和down执行。

    1.2.1 up方法的执行:

    如果在当前的项目中第一次执行迁移文件的话,则需要先去执行(从而产生一个迁移记录表):
    php artisan migrate:install

    在这里插入图片描述
    在这里插入图片描述
    作用:用于创建记录迁移文件的记录数据表(可以看作类似于svn的版本控制机制)。
    需要执行up方法,则需要执行命令:(注意:需要删除系统自带的迁移文件,只保留自己的)php artisan migrate
    在这里插入图片描述
    在这里插入图片描述

    1.2.2 Down 方法执行:

    down方法执行:(回滚操作,删除数据表)
    php artisan migrate:rollback 【回滚最后一次(批次号,针对的是批次号,不是单个表)的迁移操作,回滚操作不删除迁移文件】
    回滚操作只删除迁移表中的记录和对应的数据表,其他操作不执行。

    注意:删除(回滚之后)会删除上一个批次的迁移记录,并且同批次建立的数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。
    批次号:同一次被执行的多个迁移文件其批次号相同。

    针对迁移文件名的提示:如果迁移文件已经创建好并且执行了,就不要去修改迁移文件的名称,容易出错的。

    在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

    展开全文
  • 以下为控制器部分代码 ... *@param $follow我的关注(两联查) */ public function fans(){ $fans = Login::fans(); $follow = Login::followshow(); $count = count($follow); return ...
  • 使用Laravel值得关注的扩展包

    千次阅读 2016-07-16 11:54:15
    下面会介绍一些laravel中一些好用的扩展包,当然,其中有的也是php的扩展包,合理的使用能够大大的提示开发效率。
  • 难以掩饰此刻的心情,经过一天的奋战终于搞懂laravel多对多关联的方法以及如何在vue组件上实现点赞与关注等功能(这里只做点赞,关注大同小异)。 首先配置laravel与vue,我另外一篇文章又说道 1:先配置结构 ,三...
  • laravel

    2020-08-04 22:03:04
    http://144.34.164.217/laravellou-dong-xiang-jie.html 微信搜索我吃你家米了关注公众号
  • 本文目录一、数据填充器1.1 填充器(种子文件)的创建与编写 一、数据填充器 填充操作就是往数据中写测试数据的操作(增加操作),在开发阶段是很实用的功能。 1.1 填充器(种子文件)的创建与编写 1、填充器...
  • laravel 5的关注者系统,Laravel的Trait口才模型可以轻松实现“关注”或“喜欢”或“收藏”或“订阅”功能。 安装 通过将包添加到项目的依赖项中: $ composer require questocat/laravel-rally 首先将服务提供商...
  • <p>I'm working on a laravel 5 application. I have 3 tables: <pre><code>table A: 'users' id | name ———————————————— 1 | Dave 2 | Robet 3 | Jimmy 4 | Daniel </code></pre> <p>and ...
  • @if ($user->id !== Auth::user()->id) < div id =" follow_form "> @if (Auth::user()->isFollowing($user->id)) ...取消关注 ...关注 ... 欢迎关注,有问题一起学习欢迎留言、评论。
  • $list =Db::table('news') ->join('cates','news.cate_id','=', 'cates.id') ...本人有份laravel5.8教学课程,需要的同学可以关注公众号:小贝壳的资源库恢复laravel获取 小贝壳的资源库
  • Laravel关注 用户关注Laravel的取消关注系统。 :light_bulb: 新版本已分为几个软件包: 跟随: 像:过 最喜欢的: 订阅: 投票:overtrue / laravel-vote(正在进行中) 书签:overtrue / laravel书签(正在...
  • 首先刚接触到多对多belongtoMany关系 本来就有点饶 然后user之间互相关注还是操作一个user 并且通过关联判断这张user谁是粉丝谁是被粉。经过一天的研究终于摸头门路1.创建user与fansuser:user要定义好...
  • laravel+redis通过api简单实现微博登陆注册关注取消关注发布信息等 首先要安装配置好Redis,如何配置请查看本栏目laravel配置Redis文章。本文应用要有一定PHP基础~ 这里uid用的手写方式,如果需要api的jwt查看本人...
  • Laravel路由

    2021-07-29 13:52:30
    一、Laravel入门使用(路由) 什么是路由:将用户的请求按照事先规划的方案提交给指定的控制器或者功能函数来进行处理。 1、路由配置文件位置 路由文件在 routes/web.php 2、routes\web.php配置文件中配置...
  • laravel(拷贝到htdocs目录)(加个关注就行).rar
  • Laravel 邮件

    千次阅读 2019-12-03 15:52:12
    1.应用场景 ... laravel 5.8 QQ的SMTP服务. //163的SMTP实践总是报错, 于是转向QQ 补充: 163邮箱可以使用. 测试结果如下: 163邮箱在.env配置文件 MAIL_HOST=sm...
  • Laravel 最爱(Laravel 5, 6, 7, 8 包) 允许 Laravel Eloquent 模型实现“收藏”或“记住”或“跟随”功能。 指数 安装 通过 Composer 安装包 $ composer require christiankuri/laravel-favorite 在 Laravel >=...
  • //首次关注回复消息 if ( $postObj - > MsgType == 'event' ) { if ( $postObj - > Event == 'subscribe' ) { //如果是订阅号 $contentStr = "欢迎来到我的微信世界,这里的每一个人...
  • Laravel框架

    2017-12-15 09:14:51
    开启 Laravel 之旅以及环境配置 一、Laravel 介绍 Laravel 是一套简洁、优雅的 PHP Web 开发框架,采用了 MVC 的架构模式。它可以让你从杂乱的代码中解脱出来,帮你构建一个完美的网络 APP。 Laravel 的代码...
  • Laravel RawCookie

    2017-07-25 16:07:35
    这里介绍一下自己封装的composer包,wan/raw-cookie。主要作用是在laravel框架中使用setrawcookie设置cookie值。
  • <p>I have an issue recieving the data from a form which was modified with AJAX. <p>I have 2 fields: Cinema and Session. <p>The Session field updates automatically based on which cinema you have ...
  • laravel52.zip

    2019-12-17 11:16:29
    laravel一键安装包,无需依赖,解压即可使用,方便快捷使用laravel,欢迎大家关注,使用! 本安装包来自laravel学院
  • laravel51.zip

    2019-12-17 11:15:40
    laravel一键安装包,无需依赖,解压即可使用,方便快捷使用laravel,欢迎大家关注,使用! 本安装包来自laravel学院

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,037
精华内容 1,614
关键字:

laravel关注表