【发布时间】:2019-12-14 00:56:36
【问题描述】:
我想在 laravel 中使用 vue.js 实现一个search functionality,我得到了一个错误
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>
感谢您的帮助,谢谢!
【问题讨论】:
-
你能提供更多代码吗?它是否给出了您正在使用
.explode的文件名或行号? -
兄弟,我没用
explode -
但是你正在调用的东西!这将通过查看所有错误消息而不仅仅是摘要来识别。应该有代码文件名和行号
-
移动 ->paginate($request->per_page);调用到查询的末尾。