我需要帮助/指导,为我的Laravel 4应用程序开发多选过滤搜索 .
我的数据库中有一个名为'accounts'的表 . 此表通过以下关系链接到数据库中的其他表:
'用户'通过属于(用户模型与帐户有很多关系)'account_types'属于(AccountType模型与帐户有一个关系)
在我看来,我想要3个多选框,公司名称(取自账户表'company_name'字段),客户经理(取自account_managers表,'first_name'和'last_name'字段)和账户类型(取自account_types表,'type'字段) .
当用户从这些多选框中选择值并提交表单时,我需要搜索相关表并返回结果 . 我不想为此使用连接,因为它非常慢 . 特别是,当返回多选框的值时 .
如果可能的话,我想以一种快速恢复结果的方式使用Eloquent关系 .
我使用连接和查询字符串,但它非常慢,最多10到15秒 .
我希望有人可以帮助我解决这个问题 . 干杯 .
1 回答
好吧,我现在通过实现select2而不是简单地一次性加载所有联系人,就像魅力一样 . 工作得更好 .
这是AdminContactsController.php中的索引方法:
我的Contact.php模型中的scopeContacts方法:
这是我的JS代码:
这是我的方法getContactByName在我的AdminContactsController.php(为用户和帐户实现的类似方法)代码中实现的:
请注意,在我的select语句中,我执行DB :: raw并将'first_name'和'last_name'字段设置为'text' . 我认为这是一个主要问题,因为插件需要'id'和'text'才能运行 .
我的路线很简单: