如何获取嵌套在其他模型后面的存储数据

时间:2019-09-10 10:58:13

标签: php sql laravel eloquent

我正在尝试在视图中显示收集的数据。但是我在从数据库中获取数据时遇到了问题。

我的数据库建立如下: 用户-> QR码->数据

我正在构建一个仪表板,用户可以在其中找到所有QR码,也可以在其中单击“显示更多信息”。这需要显示收集的数据。

QRcode具有一个“ user_id”以将其连接到用户。

数据具有一个“ qr_id”,可将它们连接到二维码。

数据保留在其中,我不确定如何检索该数据。

代码在这里有效,但是它可以使每个用户都能看到任何人的数据:

withTheme

因此,仅当身份验证ID与保存数据中的qr_id相同时,我才需要显示信息。

qr码的模式

withTheme

已保存数据的模式

$datas = saved::where('qr_id',$id)->get();

qr和保存的数据模型都有关系。因此,它们应该连接在一起。

Schema::create('qrs', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('actualURL');
            $table->string('redirectURL');
            $table->unsignedInteger('user_id')->nullable();
            $table->string('imageLocal');
            $table->timestamps();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        });

也许类似

 Schema::create('saveds', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedInteger('qr_id')->nullable();
            $table->string('ip')->nullable();
            $table->integer('clicks')->default(0);
            $table->string('country')->nullable();
            $table->string('city')->nullable();
            $table->string('province')->nullable();
            $table->string('currency')->nullable();
            $table->string('browserInfo')->nullable();
            $table->string('userOS')->nullable();
            $table->string('hostMachine')->nullable();

            $table->timestamps();
            $table->foreign('qr_id')->references('id')->on('qrs')->onDelete('cascade');

        });

应该像我在这篇帖子中看到的那样工作:How to query user with posts in Laravel

但是我不确定如何在我的控制器中实现它。

1 个答案:

答案 0 :(得分:0)

由于从关系方法返回的关系充当查询生成器,因此您可以像在其他任何地方一样查询关系。代替:

$datas = saved::where('qr_id',$id)->get();

执行此操作:

$datas = $user->saved()->where('qr_id',$id)->get();