我有一个javascript,需要PHP提供的根目录路径来调用JSON文件.
我不确定这段代码是在public/js还是在我的template.blade.php中?
如果它在public/js中,那么我必须指定一个如下所示的绝对路径,因此每次我想要更改我的目录名或域时,我都必须更改路径.
url:"/ myBookStore/public/api/book-type /"
<script>
$().ready(function(){
$("#book_type").keyup(function(){
$.ajax({
type: "GET",
url: "/myBookStore/public/api/book-types/" + $("input[name=book_type]").val(),
dataType: "json",
success: function(json){
//do stuff
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
如果我把它放在template.blade.php中,我可以URL::to('/')用来指定基本URL.但是它必须是公共文件夹的外部,我不确定这是不是很好的做法?
template.blade.php
<script>
$().ready(function(){
$("#book_type").keyup(function(){
$.ajax({
type: "GET",
url: {{ URL::to('/') }} + "/api/book-types/" + $("input[name=book_type]").val(),
dataType: "json",
success: function(json){
//do stuff
}
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试设置一个搜索栏,用于过滤两个表格,书籍和类别的结果.
我有两个模型的设置关系,其中:
Book.php(模型)(表:id,b_name,b_author,cat_id)
public function bookCategory()
{
return $this->belongsTo('Category', 'cat_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)
Category.php(Model)(表:id,cat_name)
public function book()
{
return $this->hasMany('Book', 'cat_id', 'id');
}
Run Code Online (Sandbox Code Playgroud)
BookController.php
public function getFilterBooks($input)
{
$books = Book::with('bookCategory')->where('**cat_name at category table**. 'LIKE', '%' . $input . '%'')->get();
return Response::json($books);
}
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用.我这样做的原因是因为我想允许用户使用相同的搜索栏来过滤不同的列(我知道如何在一个表中执行此操作,但不是两个或更多).
public function getBooks($input)
{
$books= Book::where('book_name', 'LIKE', '%' . $input . '%')->get();
return Response::json($books);
}
Run Code Online (Sandbox Code Playgroud)
我知道如何按给定值过滤列.但是如何按给定值过滤所有列.例如,我有一个名为"类别"的列,用户应该可以使用相同的搜索栏来过滤类别.
就像是:
$books = Book::where('all_columns', 'LIKE', '%' . $input . '%')->get();
Run Code Online (Sandbox Code Playgroud)
谢谢!