Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 修改/添加/重命名eloquent集合_Laravel_Eloquent - Fatal编程技术网

Laravel 修改/添加/重命名eloquent集合

Laravel 修改/添加/重命名eloquent集合,laravel,eloquent,Laravel,Eloquent,比如说,我从以下几家公司获得了令人信服的收藏回报: $b=Book::get()(列:id、书名、页码) $m=Magazine::get()(列、id、杂志名称、类型) 那么,我如何: 将它们合并到同一个集合中 将->book\u name/mag\u name重命名为k 添加类型,如果书本使用“null”作为值 添加->hash(str::random) 我想保留该系列,以便能够利用它带来的好处。即,不将其转换为数组 Laravel 7您可以使用集合合并方法来完成它 $b = Book::

比如说,我从以下几家公司获得了令人信服的收藏回报:

$b=Book::get()(列:id、书名、页码)

$m=Magazine::get()(列、id、杂志名称、类型)

那么,我如何:

  • 将它们合并到同一个集合中
  • ->book\u name/mag\u name
    重命名为k
  • 添加
    类型
    ,如果书本使用“null”作为值
  • 添加
    ->hash
    (str::random)
  • 我想保留该系列,以便能够利用它带来的好处。即,不将其转换为数组


    Laravel 7

    您可以使用集合合并方法来完成它

    $b  = Book::get(['id','book_name as k','pages']);
    $m  = Magazine::get(['id','mag_name as k','type']);
    
    $bb = $b->map(function ($book){
        $book['type'] = null;
        $book['hash'] = Str::random();
        return $book;
    });
    
    $mm = $m->map(function ($magzine){
        $magzine['hash'] = Str::random();
        return $magzine;
    });
    
    $merged = $bb->merge($mm);
    
    return $merged;
    

    假设我们有以下集合:

    $b  = Book::get(); //(columns: id, book_name, pages)
    
    $m  = Magazine::get(); //(columns, id, mag_name, type)
    
    $result = $books->merge(magazines);
    
    其次,更新字段:

    $books = $b->map(function ($book) => {
        return [
            'id' => $book->id,
            'k' => $book->book_name,
            'type' => null,
            'hash' => Str::random() 
        ];
    });
    
    $magazines = $b->map(function ($magazine) => {
        return [
            'id' => $magazine->id,
            'k' => $magazine->mag_name,
            'type' => $magazine->type,
            'hash' => Str::random()
        ];
    });
    
    
    第三,合并集合:

    $b  = Book::get(); //(columns: id, book_name, pages)
    
    $m  = Magazine::get(); //(columns, id, mag_name, type)
    
    $result = $books->merge(magazines);
    

    将结果作为
    toArray
    获取,然后
    merge\u array
    没有帮助??