php - “explode() 期望参数 2 是字符串,给定对象” [ Laravel, Vue ]
问题描述
我想search functionality
使用 vue.js 在 laravel 中实现一个,但我得到了一个错误
explode() expects parameter 2 to be string, object given
我坚持它,我仍然无法让它工作。
我做错了什么?
这是我的控制器
公共功能索引(请求 $request) { $query = Employee::orderBy($request->column, $request->direction) ->分页($request->per_page); 如果($请求->搜索){ $query->where(function($query) 使用 ($request) { $query->where('emp_name', 'like', '%' . $request->search . '%') ->orWhere('salary', 'like', '%' . $request->search . '%'); }); } 返回 EmployeeResource::collection($query); }
我的模板
<pre>
<div class="form-group">
<input type="text"
placeholder="Search"
v-model="query.search"
@keyup.enter="fetchUser()">
</div>
</pre>
还有我的 Vue.js 代码
<pre>
export default {
props: ['source'],
mounted() {
this.fetchUser();
},
data() {
return {
emp: [],
columns: [
'ID','Emp_name','salary','phone_number','created_at'
],
query: {
page: 1,
column: 'id',
direction: 'desc',
per_page: 5,
search: ''
},
pagination: {}
}
},
methods: {
prev() {
if(this.pagination.prev) {
this.query.page--;
this.fetchUser();
}
},
next() {
if(this.pagination.next) {
this.query.page++;
this.fetchUser();
}
},
fetchUser() {
fetch(`${this.source}?column=${this.query.column}&direction=${this.query.direction}&page=${this.query.page}&per_page=${this.query.per_page}&search=${this.query.search}`)
.then(res => res.json())
.then(res => {
this.emp = res.data;
this.pagination = {
prev: res.links.prev,
next: res.links.next,
}
})
},
toggleOrder(column) {
if(column == this.query.column) {
if(this.query.direction === 'desc') {
this.query.direction = 'asc';
} else {
this.query.direction = 'desc';
}
} else {
this.query.column = column;
this.query.direction = 'asc';
}
this.fetchUser();
}
}
}
</pre>
我将感谢您的所有帮助,谢谢!
解决方案
你在这里执行你的查询
$query = Employee::orderBy($request->column, $request->direction)
->paginate($request->per_page);
这意味着您在这里有一个结果,而不是查询构建器实例了。您必须在搜索查询之后移动 paginate() 才能使其工作。
public function index(Request $request)
{
$query = Employee::orderBy($request->column, $request->direction);
if($request->search) {
$query->where(function($query) use ($request) {
$query->where('emp_name', 'like', '%' . $request->search . '%')
->orWhere('salary', 'like', '%' . $request->search . '%');
});
}
$employees = $query->paginate($request->per_page); // execute the query
return EmployeeResource::collection($employees);
}
推荐阅读
- c++ - SWIG C++ Python 嵌套类
- sql-server - 存储过程在手动执行但不通过触发器时有效
- c - 如何检查指针是否指向数组内的元素?
- arrays - 如何使用 indexPath 访问自定义单元格中的 UILabel 并将数组/字典中的用户数据实现到标签中
- python-3.x - Sqlite3 将 MM/DD/YY 字符串转换为 YYYY-MM-DD
- php - API 数据的条件大小写敏感性
- jquery - jquery 使用 esc 键返回输入的先前值
- java - 写入edittext后Android操作栏/工具栏消失
- javascript - 移动菜单的增强
- jquery - 从第 n 页而不是第 1 页初始化数据表