首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用枢轴模型找不到Laravel基表

使用枢轴模型找不到Laravel基表
EN

Stack Overflow用户
提问于 2014-03-14 18:13:42
回答 2查看 1.2K关注 0票数 1

嗨,我想查询我的任务表。关于这些表的一些背景信息以及它们之间的关系。

用户,创建项目和任务,可以从状态表中选择项目和任务的状态,用户做出自己的,我计划有默认的,但用户可能想要创建自己的。

默认情况下,我希望找到所有的用户任务,在这些任务中,status_name保存在statusesdoes not equal中。我决定最好实际上创建一个名为task_status的表,它既保存task_id,也保存status_id。我仍然希望找到已登录的用户任务,然后根据任务表中的status_id查找状态名称,这可以在statuses表中引用。然后,我只想显示不等于closed的任何记录,但是下面解释的第一部分比第一次预计的要复杂。

我的表结构如下:

表结构

用户

代码语言:javascript
运行
AI代码解释
复制
id | username | email

任务

代码语言:javascript
运行
AI代码解释
复制
id | user_id | client_id | project_id | status_id | task_name | task_brief

状态

代码语言:javascript
运行
AI代码解释
复制
id | status_name 

项目

代码语言:javascript
运行
AI代码解释
复制
id | user_id | client_id | status_id | type_id | project_name | project_brief 

task_status

代码语言:javascript
运行
AI代码解释
复制
id | user_id | task_id | status_id 

我试图先查询我的数据库,这样我就可以确保返回的数据是正确的。因此,我将查询更改为:

代码语言:javascript
运行
AI代码解释
复制
$user = User::with(array('tasks', 'task.status', 'tasks.taskstatus',
        'tasks.clients'))->find(Auth::user()->id);  

我试图按如下方式返回(请记住,我还想查询status表,以便能够返回状态的名称):

代码语言:javascript
运行
AI代码解释
复制
@foreach($user->tasks as $task) 
{{ $task->task_name }} 
    @if(!is_null($task->clients)) 
        {{ $task->clients->client_code }}
        @endif
        @if(!is_null($task->taskstatus)) 
            {{ $task->taskstatus->status_name }}
        @endif
@endforeach

我的模特:

Task.php

代码语言:javascript
运行
AI代码解释
复制
public function status(){
    return $this->hasOne('Status', 'status_id');
} 

public function taskstatus() {
    return $this->hasMany('TaskStatus', 'status_id');
} 

Status.php

代码语言:javascript
运行
AI代码解释
复制
public function tasks() 
{
    return $this->hasMany('Task');
}   

public function taskstatus()
    {
        return $this->hasMany('TaskStatus', 'status_id');
    }   

TaskStatus.php

代码语言:javascript
运行
AI代码解释
复制
public function tasks() 
{
    return $this->hasMany('Task', 'task_id');
}   

public function status() {
    return $this->belongsTo('Status', 'status_id')
}

但是,使用上述方法将返回以下错误:

代码语言:javascript
运行
AI代码解释
复制
SQLSTATE[42S02]: Base table or view not found: 1146 Table 
'imanage.task_statuses' doesn't exist (SQL: select * from `task_statuses` 
 where `task_statuses`.`status_id` in (?, ?, ?, ?, ?, ?, ?)) 
(Bindings: array ( 0 => 1, 1 => 2, 2 => 3, 3 => 4, 4 => 5, 5 => 6, 6 => 7, ))

我确信,我的关系被错误地定义了,但是我不知道如何纠正these.Can,任何人的帮助?

EN

回答 2

Stack Overflow用户

发布于 2014-03-14 21:31:26

您还可以尝试以下代码:

代码语言:javascript
运行
AI代码解释
复制
$user = User::whereHas('task.status', function($q)
            {
              $q->where('status', '!=', 'close');
            })
            ->with('task', 'task.clients')
            ->where('id', Auth::user()->id)
            ->first();

查看查询关系上雄辩的文档。

还请记住,不回显视图,而是return视图。

票数 0
EN

Stack Overflow用户

发布于 2014-03-15 15:44:34

这个错误似乎与这样一个事实有关: Laravel (实际上是雄辩的)是得到了错误的表名:下面是task_statuses而不是task_status。记住,雄辩者将尝试多元命名模型以获得表名。

代码语言:javascript
运行
AI代码解释
复制
SQLSTATE[42S02]: Base table or view not found: 1146 Table 
'imanage.task_statuses' doesn't exist

因此,要么重命名您的表以符合Laravel预期,要么在您的模型中指定一个自定义表名

代码语言:javascript
运行
AI代码解释
复制
class TaskStatus extends Eloquent {

    protected $table = 'task_status';

    ...

此外,我不清楚您代码的这一部分:

代码语言:javascript
运行
AI代码解释
复制
Task.php

public function status(){
    return $this->hasOne('Status', 'status_id');
} 

public function taskstatus() {
    return $this->hasMany('TaskStatus', 'status_id');
} 

您的任务是否具有one状态,还是具有多个状态?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22418713

复制
相关文章
Python如何将图像向右旋转90度
如果直接套用PIL和OpenCV3图像处理库的旋转函数,旋转后保存的图像会留黑边,下面给出我实际测试后旋转图像不留黑边的代码:
嵌入式视觉
2022/09/05
2.1K0
Python如何将图像向右旋转90度
图像处理之直方图均衡化拉伸
在OpenCV中,实现直方图均衡化比较简单,调用equalizeHist函数即可。具体代码如下:
charlee44
2022/05/05
1.4K0
图像处理之直方图均衡化拉伸
DragGAN:鼠标拉伸创作新图像的神奇交互体验!
DragGAN 是一款全新的人工智能应用程序,可以通过在图像上拖动来轻松调整照片和艺术作品。
测试开发囤货
2023/08/08
4090
DragGAN:鼠标拉伸创作新图像的神奇交互体验!
OpenCV 图像变换之 —— 拉伸、收缩、扭曲和旋转
图像变换最直接的应用就是改变图像的形状、大小、方向等等,这些在OpenCV 中有部分现成的实现。
为为为什么
2022/08/09
11.2K0
OpenCV 图像变换之 —— 拉伸、收缩、扭曲和旋转
WebApplicationInitializer向左,ServletContextInitializer向右
为什么要写这篇文章呢?因为笔者在读Spring相关源码时,发现WebApplicationInitializer与ServletContextInitializer拥有相同的方法签名,作用也基本一致,可不明白它俩的使用场景有啥区别,要不Spring Boot怎么会又单独设计一个ServletContextInitializer出来呢?
程序猿杜小头
2022/12/01
8870
WebApplicationInitializer向左,ServletContextInitializer向右
菱形图案
本文最后更新于 1163 天前,其中的信息可能已经有所发展或是发生改变。 #include<stdio.h> int main() { for(int j=0;j<4;j++) { for(int k=0;k<2*(4-j-1);k++) { printf(" "); } for(int k=0;k<(2*j+1);k++) { printf("* "); } printf("\n"); } for(int j=0;j<3;j++) { for
Yuyy
2022/06/28
7660
cacaview - Linux终端下将图片转换ASCII Art代码图案
有时你可能需要终端输出许多图片,那么现在就让我们在Linux终端打开一个新窗口显示图片。
用户8710806
2021/06/09
1.2K0
Promise 向左,Async/Await 向右?
1. 前言 从事前端开发至今,异步问题经历了 Callback Hell 的绝望,Promise/Deffered 的规范混战,到 Generator 的所向披靡,到如今 Async/Await 为大众所接受,这其中 Promise 和 Async/Await 依然活跃代码中,对他们的认识和评价也经历多次反转,也有各自的拥趸,形成了一直延续至今的爱恨情仇,其背后的思考和启发,依旧值得我们深思。 预先声明: 本文的目标并不是引发大家的论战,也不想去推崇其中任何一种方式来作为前端异步的唯一最佳实践,想在介绍下
用户1097444
2022/06/29
5040
Promise 向左,Async/Await 向右?
iOS使用xcode可视化图像编辑功能进行图片拉伸
在我的另一篇博客http://my.oschina.net/u/2340880/blog/403996中探讨了IOS拉伸图像(UIImage)的几种方法和一些小经验,这篇是一个补充,再将xcode中的另一种可视化拉伸图像的方法的使用介绍给大家。
珲少
2018/08/15
1.6K0
iOS使用xcode可视化图像编辑功能进行图片拉伸
Filecoin向左,以太坊向右
以太坊2.0的信标链上线了。作为以太坊的表弟,Filecoin给表哥的贺电中这样写道:祝贺以太坊社区推出了以太坊2.0!这是Web3和以太坊发展的下一个里程碑!
用户9624935
2022/04/02
5460
Filecoin向左,以太坊向右
CAD拉伸的快捷命令_cad拉伸实体快捷键
CAD快捷键在CAD绘图中是不可或缺的,刚入门CAD的小伙伴们一定要熟练掌握常用CAD快捷键命令的使用。那么CAD拉伸快捷键命令是什么呢?又该如何使用呢?下面小编就来给大家介绍一下浩辰CAD软件中CAD拉伸快捷键命令的相关使用技巧吧!
全栈程序员站长
2022/09/20
3.1K0
【Midjourney】Midjourney Prompt 提示词 ④ ( 纹身设计 | 建筑设图案 | 照片级真实性图像 | 玻璃窗设计图案 | 使用 Blender 制作的 3D 图像 )
使用 architecture / interior design 提示词 可生成 建筑设计图案 ;
韩曙亮
2023/10/11
2640
【Midjourney】Midjourney Prompt 提示词 ④ ( 纹身设计 | 建筑设图案 | 照片级真实性图像 | 玻璃窗设计图案 | 使用 Blender 制作的 3D 图像 )
iOS图片无损拉伸
在stretchableImageWithLeftCapWidth:30 topCapHeight:35方法中,第一个参数是指取图片从左边数第三十列像素,第二个则是从顶部数第35行像素,在图片需要扩展的时候就会用这两列像素填充,因此图片不会失真
用户8983410
2021/10/29
1.4K0
基于FPGA的直方图拉伸
在视频处理中,为了能够实时调节图像的对比对,通常需要对直方图进行拉伸处理。直方图拉伸是指将图像灰度直方图较窄的灰度级区间向两端拉伸,增强整幅图像像素的灰度级对比度,达到增强图像的效果。
FPGA开源工作室
2019/12/18
1.2K0
java打印出菱形图案_输入以下图案菱形
打印菱形图案首先要对菱形进行分析,如下图示所示将菱形分为上下两部分,上部分 * 的数量是1、3、5、7、9以此类推,” “的数量是4、3、2、1;下半部分 * 的数量是7、5、3、1,” “的数量是1、2、3、4,以此为突破口寻找规律。利用两个for语句将菱形分为上下两部分,然后在for语句中嵌套两个for语句一个控制 * 的数量,一个控制” ” 的数量;
全栈程序员站长
2022/11/11
1.1K0
java打印出菱形图案_输入以下图案菱形
iOS中图片(UIImage)拉伸技巧 原
简单暴力,却是最最常用的方法,直接将图片设置为ImageView的image属性,图片便会随UIImageView对象的大小做自动拉伸。这种拉伸的方法有一个致命的缺陷,它会使图像发生失真与形变。
珲少
2018/08/15
3.6K0
iOS中图片(UIImage)拉伸技巧
                                                                            原
使用alpha混合将图像分层和图像抗锯齿。
import matplotlib.pyplot as plt import numpy as np methods = [None, 'none', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell',
裴来凡
2022/05/28
1.2K0
使用alpha混合将图像分层和图像抗锯齿。
Proe基础特征之拉伸篇
拉伸看似简单,却是实际应用最多的,很多结构都是拉伸出来的,需要多思考,多练习。做结构设计或者任何技术性工作,当然也包括业务类等等,浮躁的人永远不会成功。
枫桦
2022/08/02
1.4K0
Proe基础特征之拉伸篇
点击加载更多

相似问题

向右拉伸浮动div宽度?

23

Flash“向左浮动<拉伸>向右浮动”

10

CSS:图形居中,然后向右继续图案

20

将图像向右移动

30

将图像拉伸成SVG

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文