标签:laravel mysqli sql mysql database
我是如此的绝望,并且已经考虑了很长时间,无法想象我会多么感谢您的帮助.相信我.
这是我的情况.有3种类型的用户(角色).客户端,服务提供商,管理员.
Client – Adds new orders
Service-Provider – Executes added orders
Admin – makes sure client’s added order is correct, finds
service-provider and gives it to service-provider.
当客户添加新订单时,应该发生的是客户和管理员之间必须有一个投标系统.添加时的订单价格可能是50美元.客户可以出价40美元,然后管理员可以就此出价或出价其他价格.然后客户可以选择接受或尝试其他价格,依此类推.这是主意.协商价格后,服务提供商和管理员之间必须执行相同的过程.
因此,我需要一个表,用于在客户端与admin之间以及admin和服务提供者之间存储出价,并且还需要存储出价历史记录而不是最新出价.
用户表
+----+--------+---------------------------------+-------------+
| id | name | userable_type | userable_id |
+----+--------+---------------------------------+-------------+
| 1 | George | App\Http\Models\Client | 2 |
| 2 | John | App\Http\Models\ServiceProvider | 3 |
| 3 | Ben | App\Http\Models\Admin | 4 |
+----+--------+---------------------------------+-------------+
客户端表/管理表/服务提供者表现在看起来相同
+----+--+
| id | |
+----+--+
| 1 | |
| 2 | |
| 3 | |
+----+--+
现在,如果我要制作出价表,则不想为服务提供商,管理员和客户分别创建新表.我更喜欢使它成为唯一的一个.
让我们举个例子:
+----+----------+---------+-------+
| id | order_id | user_id | price |
+----+----------+---------+-------+
| 1 | 2 | 1 | 50 |
| 1 | 2 | 1 | 60 |
| 1 | 2 | 3 | 70 |
+----+----------+---------+-------+
现在,我如何知道对管理员的出价,对客户的出价和对服务提供商的出价?基本上,我要获取的是order_id 2的所有客户出价和管理员出价,以及order_id 2的提供者出价和管理员出价.我已尽力而为,但仍无法解决.也许是更好的版本,您可以建议我使用.
谢谢.
解决方法:
您可以通过加入获得出价
$bids = DB::table('bids')
->join('users', 'users.id', '=', 'bids.user_id')
->select('bids.*', 'users.userable_type')
->where('bids.order_id',$order_id)
->whereIn('users.userable_type', ['App\Http\Models\Client','App\Http\Models\Admin'])
->get();
标签:laravel,mysqli,sql,mysql,database 来源: https://codeday.me/bug/20191211/2106168.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。