Laravel выборка данных из двух таблиц без объединения с разбиением на страницы - PullRequest
0 голосов
/ 14 января 2020

Я хочу получить результаты из двух таблиц свойства и properties_x где properties.address или properties_x.address_x как test с laravel нумерацией страниц.

Между этими двумя таблицами нет связи по внешнему ключу.

properties

id  name    address
1   test1   
2   test2   
3   test3   
4   test3   test
5   test4   test

properties_x

id  name    address
1   test1_x test
2   test2_x 
3   test3_x 
4   test3_x test
5   test4_x 

    Expected results:
    name     address
    test3    test
    test4    test
    test1_x  test
    test3_x  test

Ответы [ 3 ]

1 голос
/ 14 января 2020

Используйте union all для объединения двух данных таблицы,

И получите столбцы из этих данных в БД, чтобы вы могли использовать нумерацию страниц.

попробуйте так:

$p1 = DB::table('properties')
        ->where('address', 'test')
        ->select('name', 'address');

$p2 = DB::table('properties_x')
         ->where('address', 'test')
         ->select('name', 'address');

$p = $p1->unionAll($p2);

DB::table(DB::raw("({$p->toSql()}) AS p"))
->mergeBindings($p)
->select('name', 'address')
->paginate(10);
0 голосов
/ 15 января 2020
     public function index()
        {
            $posts = Post::latest()->get();
            $categories = Category::latest()->get();
            return view('admin.post.index',compact('posts','categories '));
        }

//  blade file 
<tbody>
@foreach($categories as $key=>$category)
  <tr>
     <td>{{ $key + 1 }}</td>
     <td>{{ $category->name }}</td>
      <td>{{ $category->slug }}</td>
      <td>{{ $category->created_at->diffForHumans() }}</td>
       <td >
        <a href="{{ route('admin.category.edit',$category->id) }}" class="btn btn-info waves-effect"><i class="material-icons">{{__('edit')}}</i>
        </a>
 <button class="btn btn-danger waves-effect" type="button" onclick="deletecategory({{ $category->id }})"><i class="material-icons">{{__('delete')}}</i>
 </button>
 <form id="delete-form-{{ $category->id }}" action="{{ route('admin.category.destroy',$category->id) }}" method="POST" style="display: none;">
    @csrf
    @method('DELETE')
   </form>
   </td>
    </tr>
    @endforeach

   </tbody>
// Route 
Route::resource('category','CategoryController');
0 голосов
/ 14 января 2020

Я не знаю, есть ли другой способ, но он хорошо работает для меня

$res= [];

$tableONe = Property::where('address','test')->get();

array_push($res,$tableOne);


$tableTwo = PropertyX::where('address','test')->get();

array_push($res,$tableTwo);

теперь у $ res есть обе таблицы данных вместе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...