php - laravel-选项所有值

标签 php mysql laravel

嗨,我想知道如何在“选择”中创建一个“选项”,以获取该“选择”的所有可能值。我尝试了whereIn和whereBetwen,但无法得到它。甚至有人提到使用Jquery。 laravel版本是5.4。

这是代码:

控制者

function catalog(Request $abc) {
    $categoryesc = $abc->categoryesc;
    $manufaesc = $abc->manufaesc;
    $priceesc = $abc->priceesc;
    $modelesc = $abc->modelesc;
    if (empty($modelesc)) {

        $robots = DB::table('robots')->where('Category_id', [$categoryesc])->where('Manufacturer_id', [$manufaesc])->where('Price', '<=', $priceesc)->get();
    }elseif (Auth::check()){
        $robots = DB::table('robots')->where('Model', $modelesc)->first();
        $colours = DB::table('colours')->pluck('Colour', 'id'); 
    }
    else {
        return redirect('login');
    }
    return view('catalog', compact('robots', 'categories', 'colours')); 
}


刀片文件:

{{ Form::open(array('method' => 'GET')) }}
    {{ Form::select('categoryesc', ['0' => 'Any Category', '1' => 'Light', '2' => 'Medium', '3' => 'Heavy'], '0') }}
    {{ Form::select('manufaesc', ['0' => 'Any Make', '1' => 'Xenon', '2' => 'Tauron'], '0') }}
    {{ Form::select('priceesc', ['0' => 'Any Price', '100' => '100', '200' => '200'], '0') }}
    {{ Form::submit('Search') }}
{{ Form::close() }}


错误:

ErrorException in 164eed4705c5997d268ffab821c82effa7651a2b.php line 31:
Undefined property: Illuminate\Database\MySqlConnection::$Model (View: C:
(...)\resources\views\catalog.blade.php)

in 164eed4705c5997d268ffab821c82effa7651a2b.php line 31

at CompilerEngine->handleViewException(object(ErrorException), 1) in 
PhpEngine.php line 44

at PhpEngine->evaluatePath('C:\\(...) \\ storage\\ framework\\ views/ 
164eed4705c5997d268ffab821c82effa7651a2b.php', array('__env' => 
object(Factory), 'app' => object(Application), 'errors' => 
object(ViewErrorBag), 'robots' => object(Builder))) in CompilerEngine.php 
line 59

at CompilerEngine->get('C:(...)\\resources\\views/catalog.blade.php', 
array('__env' => object(Factory), 'app' => object(Application), 'errors' => 
object(ViewErrorBag), 'robots' => object(Builder))) in View.php line 137

at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 38

最佳答案

与其尝试提​​出一种包括所有此类内容的方法,不如对其进行更改以根据您的选择限制选择范围。所以

$robots = DB::table('robots')->where('Category_id', [$categoryesc])->where('Manufacturer_id', [$manufaesc])->where('Price', '<=', $priceesc)->get();


可以写成

$robots = DB::table('robots');
if ( $categoryesc !=0 ) {
    $robots->where('Category_id', $categoryesc);
}
if ( $manufaesc!=0 ) {
    $robots->where('Manufacturer_id', $manufaesc);
}
if ( $manufaesc!=0 ) {
    $robots->where('Price', '<=', $priceesc);
}
$robots->get();


然后在刀片中,将“任何”值设置为0。这样,它仅在需要时才包含选择。

关于php - laravel-选项所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43855059/

相关文章:

php - 如何循环遍历数组并将其值存储在 Laravel 中

php - 从 FTP 返回文件树

php - MySQL 'Group By' 搞乱虚拟列计数

php - 如果我想包含另一个文件夹,如何获取链接路径

MySQL Date Var 在 if 条件后改变

sql - 如何基于两个不同的列进行 ORDER BY

mysql - 手动调用级联删除?

php - Laravel 请求具有复杂 url 的通配符

php - 如何修复hmset redis

javascript - 使用 PHP/JavaScript 链接获取有关网站访问者的信息