Laravel:插入getId并显示结果

问题描述 投票:0回答:3

我想将一些记录插入到我的数据库表中,并使用 insertgetid 功能,将这些结果返回到我的刀片视图。

控制器

$grids[] = array();
        
foreach($c as $key) {
    $grids[] = DB::table('infile')->insertGetId(
            array(  'href' => $key, 
                    'creator_id' => $id,
                    'random' => substr(str_shuffle("aBcEeFgHiJkLmNoPqRstUvWxYz0123456789"),0, 9))
        );
}
        
$name[] = array();
foreach($grids as $id){
    $name = DB::table('infile')->where('id', '=', $id)->first();
}

return View::make('Home')->withName($name);

刀片视图

@if(isset($name) && $name != '')
    {{dd($name)}}
@endif

我收到此错误

ErrorException

preg_replace(): Parameter mismatch, pattern is a string while replacement is an array
php laravel laravel-4
3个回答
1
投票

您可以使用

whereIn
进行精确查询。
between
应该可以工作,但很容易出错,因为同时可能会插入另一行:

$ids = [];

foreach (..)
{
   $ids[] = DB::table('infile')->insertGetId(...);
}

$data = DB::table('infile')->whereIn('id', $ids)->get();

0
投票

我最终使用了不同的方法

我在执行插入之前找到了最大值

id
,然后在插入后找到了最大值
id
,然后使用其间来获取数据。

$max = DB::table('infile')->max('id');

foreach($c as $key) {

    DB::table('infile')->insertGetId(
        array(
            'href' => $key, 
            'creator_id' => $id,
            'random' => substr(str_shuffle("aBcEeFgHiJkLmNoPqRstUvWxYz0123456789"),0, 9)
        )
    );
}

$max2 = DB::table('infile')->max('id');
$data = DB::table('infile')->whereBetween('id', array($max, $max2))->get();

0
投票
 $id = DB::table('user')->insertGetId(['name'=>"test"]);
© www.soinside.com 2019 - 2024. All rights reserved.