因此,我从Laravel收到以下错误:

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'participants' (SQL: select `participants`.*, `participants`.`message_id` as `pivot_message_id`, `participants`.`user_id` as `pivot_user_id`, `participants`.`created_at` as `pivot_created_at`, `participants`.`updated_at` as `pivot_updated_at` from `participants` inner join `participants` on `participants`.`id` = `participants`.`user_id` where `participants`.`deleted_at` is null and `participants`.`message_id` in (2))

我的消息/参与者关系如下所示:

public function participants()

{

return $this->belongsToMany('Namespace\Modules\Email\Models\Participant', 'participants', 'message_id', 'user_id')->withTimestamps();

}

我试图这样称呼它:

public function getAllMessages()

{

return Message::with('user')->with('participants')->get();

}

为什么会出现此错误?到底是怎么回事?

编辑:包括完整模型

信息

????????消息扩展口才

????{

????????使用PublishedTrait;

????????使用SoftDeletingTrait;

/**

* The database table used by the model.

*

* @var string

*/

protected $table = 'messages';

/**

* The attributes that can be set with Mass Assignment.

*

* @var array

*/

protected $fillable = ['subject', 'user_id', 'body', 'status'];

/**

* The attributes that should be mutated to dates.

*

* @var array

*/

protected $dates = ['created_at', 'updated_at', 'deleted_at'];

/**

* Validation rules.

*

* @var array

*/

protected $rules = [

'subject' => 'required|max:255',

'body' => 'required',

];

/**

* User relationship

*

* @return \Illuminate\Database\Eloquent\Relations\BelongsTo

*/

public function user()

{

return $this->belongsTo(Config::get('email.user_model'));

}

public function assets()

{

return $this->belongsToMany('Namespace\Modules\Assets\Models\Asset', 'message_assets');

}

/**

* Participants relationship

*

* @return \Illuminate\Database\Eloquent\Relations\HasMany

*/

public function participants()

{

return $this->belongsToMany('Namespace\Modules\Email\Models\Participant', 'participants', 'message_id', 'user_id')->withTimestamps();

}

/**

* Recipients of this message

*

* @return \Illuminate\Database\Eloquent\Relations\HasMany

*/

public function recipients()

{

return $this->participants()->where('user_id', '!=', $this->user_id);

}

/**

* Returns the latest message from a thread

*

* @return Namespace\Modules\Email\Models\Message

*/

public function getLatestMessageAttribute()

{

return $this->messages()->latest()->first();

}

/**

* Returns threads that the user is associated with

* @param $query

* @param $userId

* @return mixed

*/

public function scopeForUser($query, $userId)

{

return $query->join('participants', 'messages.id', '=', 'participants.message_id')

->where('participants.user_id', $userId)

->where('participants.deleted_at', null)

->select('messages.*');

}

/**

* Returns threads that the user is associated with

* @param $query

* @param $userId

* @return mixed

*/

public function scopeForUserWithDeleted($query, $userId)

{

return $query->join('participants', 'messages.id', '=', 'participants.message_id')

->where('participants.user_id', $userId)

->select('messages.*');

}

/**

* Returns messages that the user has sent

* @param $query

* @param $userId

* @return mixed

*/

public function scopeByUser($query, $userId)

{

return $query->where('user_id', $userId);

}

/**

* Returns threads with new messages that the user is associated with

* @param $query

* @param $userId

* @return mixed

*/

public function scopeForUserWithNewMessages($query, $userId)

{

return $query->join('participants', 'messages.id', '=', 'participants.message_id')

->where('participants.user_id', $userId)

->whereNull('participants.deleted_at')

->where(function ($query) {

$query->where('messages.updated_at', '>', $this->getConnection()->raw($this->getConnection()->getTablePrefix() . 'participants.last_read'))

->orWhereNull('participants.last_read');

})

->select('messages.*');

}

}

参加者

class Participant extends Eloquent

{

use SoftDeletingTrait;

/**

* The database table used by the model.

*

* @var string

*/

protected $table = 'participants';

/**

* The attributes that can be set with Mass Assignment.

*

* @var array

*/

protected $fillable = ['message_id', 'user_id', 'last_read'];

/**

* The attributes that should be mutated to dates.

*

* @var array

*/

protected $dates = ['created_at', 'updated_at', 'deleted_at', 'last_read'];

/**

* Thread relationship

*

* @return \Illuminate\Database\Eloquent\Relations\BelongsTo

*/

public function message()

{

return $this->hasMany('Namespace\Modules\Email\Models\Message');

}

/**

* User relationship

*

* @return \Illuminate\Database\Eloquent\Relations\BelongsTo

*/

public function user()

{

return $this->belongsTo(Config::get('email.user_model'));

}

}

mysql sqlstate 42000_mysql-SQLSTATE [42000]:语法错误或访问冲突:...相关推荐

  1. mysql unescape解码_python mysql escape\n(简单语法错误)

    我想使用这个python命令将mysql数据库导出到一个.csv文件中.在cursor.execute("""SELECT * INTO OUTFILE 'NullSer ...

  2. MYSQL 因单引号报语法错误

    命令行里带单引号要报语法错误 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds ...

  3. [故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?

    情况如图,使用dvlopenhls可以登陆到这个host,并且可以查看里面的tables,但是使用tables其中的op_flow就会报错,查看了很多地方,有人说要改密码,有人说要grant给权限.五 ...

  4. mysql 1044 42000_[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?

    情况如图,使用dvlopenhls可以登陆到这个host,并且可以查看里面的tables,但是使用tables其中的op_flow就会报错,查看了很多地方,有人说要改密码,有人说要grant给权限.五 ...

  5. mysql存储过程语法错误1064_mysql,dos下执行SQL语句创建存储过程出错ERROR 1064 (42000):...

    update1.sql的内容为 DROP PROCEDURE IF EXISTS pcName; CREATE PROCEDURE pcName() BEGIN select 'a'; END; do ...

  6. c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...

    C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...

  7. mysql创建函数时,1064语法错误,明明看着都对就是提示语法错误怎么办?

    函数定义和错误提示如下所示 mysql> DELIMITER $$ mysql> CREATE FUNCTION rand_string(n INT) RETURNS VARCHAR(25 ...

  8. mysql 5.5 type=innodb_mysql5.5.23TYPE=InnoDB语法错误_MySQL

    bitsCN.com mysql5.5.23 TYPE=InnoDB语法错误 CREATE TABLE IF NOT EXISTS `ad_aXXXX_test_delete` ( `payment` ...

  9. mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误

    如果加工规则中涉及RDS资源的加载,则有可能会产生资源的加载或刷新错误.本文档主要介绍从RDS-Mysql获取数据出错的原因以及排查处理方法. 在成功读取源Logstore数据后,加工引擎开始对源Lo ...

最新文章

  1. python嵌套字典取值_python嵌套字典比较值与取值的实现示例
  2. cannot import name 'InteractiveConsole'
  3. 自学python推荐书籍2019-2019最全Python入门学习路线,不是我吹,绝对是最全
  4. 在虚拟机上安装redis集群,redis使用版本为4.0.5,本机通过命令客户端可以连接访问,外部主机一直访问不了...
  5. Android之SwipeRefreshLayout
  6. 深度学习之卷积神经网络 ResNet
  7. CLR Generic
  8. 查询某字段不重复记录的SQL语句
  9. 【渝粤教育】国家开放大学2018年春季 7392-21FMatlab语言及其应用 参考试题
  10. 【读书笔记】浪潮之巅——公司史篇
  11. 阿里云ecs概念介绍
  12. apt cyg 安装php,Cygwin的安装及使用apt-cyg管理软件包
  13. 整理总结:英语口语发音技巧
  14. psql屏幕输出全部结果_液晶电视无法开机,是电源板问题还是屏幕问题,自己动手维修...
  15. Java基础(1)-存在指针吗
  16. android 获取栈顶activity,android获取当前栈顶的activity
  17. Nginx的Https配置及代理api接口配置
  18. 云米冰箱“失智”,问题不止“小米依赖症”
  19. 了解一下,Android 10中的APEX
  20. Re38:读论文 NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction

热门文章

  1. php拦截登录页面跳转页面,PHP未登录自动跳转到登录页面
  2. 【格式转换程序软件集】---[A2B]---集中收集-不断更新[2008-3-29] 软件 软件 杭州志彬电脑维修网
  3. C语言判断关系中的自反还是反自反
  4. 捷联惯性导航系统与平台式惯性导航系统的区别
  5. android闹钟测评,时间就是一切 Android闹钟应用推荐
  6. linux摄像头教程,linux 摄像头驱动编写方法教程
  7. 计算机自动配置的ip地址,电脑自动获取IP地址的设置方法(图文)
  8. moviepy音视频剪辑基类VideoClip的write_gif方法opt、fuzz、dispose、colors、loop等参数的作用
  9. 【Python】称重系统-异步执行多线程运行threading 模块 Thread 类实现
  10. a标签在企业微信 或者 微信中,推送过来的超链接失效