条件正确时如何分页laravel 5

时间:2017-03-07 12:26:23

标签: sql database laravel paginate

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

这里是我的代码

路线:

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 - &gt;表名&#39; zaban&#39;

table Fields =&gt; id,my_lang,default_lang,created_at,updated_at

这是我的问题

我想要分享“my_lang&#39; =&#39; default_lang&#39;

就像这样

id = 1,my_lang = 0,default_lang = 1

id = 2,my_lang = 1,default_lang = 1

id = 3,my_lang = 0,default_lang = 1

好的。只需要返回id = 2

ofcourse 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);
}

1 个答案:

答案 0 :(得分:2)

在您的查询中,您搜索字符串&#39; default_lang &#39;在&#39; my_lang &#39; 专栏这就是你得到一个空集合的原因。 您可以orderBy default_lang

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

或选择&#39; default_lang &#39;价值是......有些价值......&#39;:

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

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

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