【问题标题】:how to paginate when condition is correct laravel 5当条件正确时如何分页laravel 5
【发布时间】:2017-07-27 15:51:52
【问题描述】:

我有几个简单的代码,我想在我的条件正确时分页

这是我的代码

路线:

Route::resource('lang','zabanController');

控制器:

public function index(){
$show=DB::table('zaban')->paginate(5);
return view('twoLang.index',compact('show'));
}

public function show($id)
{

    DB::table('zaban')->where('default_lang','!=',$id)->update([
        'default_lang'=>$id
    ]);
 }

查看:

<div class="container-fluid">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
    <div>
        <a href="{{action('zabanController@show',1)}}">Per</a>
        <a href="{{action('zabanController@show',0)}}">ENG</a>
    </div>
            <table class="table table-hover table-bordered table-striped">
                <thead>
                    <tr>
                        <th>id</th>
                        <th>lang ID</th>
                        <th>Default lang</th>
                        <th>Content</th>
                    </tr>
                </thead>
                <tbody>
                @foreach($show as $content)
                    @if($content->my_lang==$content->default_lang)
                        <tr>
                            <th>{{$content->id}}</th>
                            <th>{{$content->my_lang}}</th>
                            <th>{{$content->default_lang}}</th>
                            <th>{{$content->content}}</th>
                        </tr>
                    @endif
                @endforeach
                </tbody>
            </table>
            {{$show->links()}}

        </div>
    </div>
</div>

DB -> 表名'zaban'

表字段 => id , my_lang , default_lang ,created_at , updated_at

这是我的问题

我想对 'my_lang' = 'default_lang' 的内容进行分页

就这样

id = 1 , my_lang = 0 , default_lang = 1

id = 2 , my_lang = 1 , default_lang = 1

id = 3 , my_lang = 0 , default_lang = 1

ok.这里只需要 return id=2

当然 default_lang 可能会在处理过程中发生变化,但 my_lang 始终是修复的(如果我写的正确:))

表示如果表字段像这样改变:

id = 1 , my_lang = 0 , default_lang = 0

id = 2 , my_lang = 1 , default_lang = 1

id = 3 , my_lang = 0 , default_lang = 0

需要返回id=1和id=3

希望我的头脑清醒

我在控制器中写了这个,但没有机会

$show=DB::table('zaban')->where('my_lang','default_lang')->paginate(5);

还有这个

 $alls=DB::table('zaban')->get();
 foreach($alls as $al)
{
$show = DB::table('zaban')->where('my_lang','default_lang')->paginate(5);
}

【问题讨论】:

  • 我得到了一个没有任何数据的数组 // 这里输出:Collection {#297 ▼ #items: [] }
  • 我收到错误:Builder.php 第 775 行中的 ErrorException:为 foreach() 提供的参数无效

标签: sql database laravel pagination


【解决方案1】:

在您的查询中,您在 'my_lang' column 中搜索 string 'default_lang' 这就是您得到的原因一个空集合。 你可以orderBydefault_lang

$show=DB::table('zaban')->orderBy('default_lang')->paginate(5);

或者选择 'default_lang' 其中 value 是 'some value ...':

$show=DB::table('zaban')->where('default_lang','some value ...')->paginate(5);

如果要验证两列是否相等:

$show = DB::table('zaban')
                ->whereColumn('my_lang', 'default_lang')
                ->paginate(5);

【讨论】:

  • 没有工作,他们不是字符串!这是我的迁移: $table->enum('my_lang',(['0','1'])); $table->enum('default_lang',(['0','1']));
  • 您要选择 'my_lang' = 'default_lang' 的数据?你的 Laravel 版本是什么?
  • 是的,我想这样做,我的 laravel 版本是 5.4.13
猜你喜欢
  • 2023-03-24
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 2023-03-18
  • 1970-01-01
相关资源
最近更新 更多