Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Спасибо за конструктив! Видимо потому тут я ничего путного не нашел..
В общем сам и решил, костыль получился такой:
В контроллере PostsController:
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
class PostsController extends Controller
{
public function reestr(){
$columns=array('UIN_rec_rees', 'NUM_RU', 'date_of_reg', 'name', 'name_of_applicant', 'name_of_manufacturer');
$string_title = DB::connection('information_schema')->table('COLUMNS')->select('COLUMN_NAME', 'COLUMN_COMMENT')->WHERE('TABLE_SCHEMA', 'orion_v2')->WHERE('TABLE_NAME', 'v2_rees')->get()->toArray();
$arr=array();
foreach ($columns as $value_column){
foreach ($string_title as $value_schema){
if ($value_schema->COLUMN_NAME==$value_column){
array_push($arr, $value_schema->COLUMN_COMMENT);
}
}
}
$result = DB::table('v2_rees')->select($columns)->simplePaginate(15);
return view('posts.reestr', ['results' => $result, 'string_title' => $arr]);
}
}
В reestr.blade.php:
<table><tr>
@foreach ($string_title as $cell_title)
<td>{{ $cell_title }}</td>
@endforeach
</tr>
@foreach ($results as $string)
<tr>
@foreach($string as $cell)
<td >
@php
echo $cell;
@endphp
</td>
@endforeach
</tr>
@endforeach
</table>
Доброго времени суток!
Храню в комментариях столбцов таблицы MYSQL удобочитаемые названия столбцов для подмены (при отображении на странице), типа:
CREATE TABLE `v2_rees` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`UIN_rec_rees` text NOT NULL COMMENT 'Уникальный номер реестровой записи',
`NUM_RU` text NOT NULL COMMENT 'Регистрационный номер',
`date_of_reg` date NOT NULL COMMENT 'Дата государственной регистрации',
`date_valid_to` date DEFAULT NULL COMMENT 'Срок действия удостоверения',
`name` mediumtext NOT NULL COMMENT 'Наименование изделия',
`name_of_applicant` text COMMENT 'Наименование организации-заявителя',
`faddress_of_applicant` text COMMENT 'Место нахождения организации-заявителя',
`uaddress_of_applicant` text COMMENT 'Юридический адрес организации-заявителя',
`name_of_manufacturer` text COMMENT 'Наименование организации-производителя',
`faddress_of_manufacturer` text COMMENT 'Место нахождения организации-производителя',
`uaddress_of_manufacrurer` text COMMENT 'Юридический адрес организации-производителя',
`okp_okpd2` tinytext COMMENT 'ОКП/ОКПД2',
`class_of_risk` text COMMENT 'Класс потенциального риска',
`destiny` text COMMENT 'Назначение изделия, установленное производителем',
`type_of_classified` tinytext COMMENT 'Вид изделия в соответствии с номенклатурной классификацией',
`address_of_manufactuty` text COMMENT 'Адрес места производства или изготовления',
`info_of_cross` text COMMENT 'Сведения о взаимозаменяемых изделиях',
PRIMARY KEY (`id`),
UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26689 DEFAULT CHARSET=utf8
в config/database.php в секции connections добавил (с участием переменных БД MYSQL существующего пользователя):
//other database configs
'information_schema' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'information_schema',
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
],
в web.php следующий код (часть кода):
Route::get('reestr', 'PostsController@reestr');
В контроллере PostsController "вот так вот, вот так вот" ©:
(часть кода)
namespace App\Http\Controllers;
use App\v2_rees;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Schema;
class PostsController extends Controller
{
public function reestr(){
$req='SELECT COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='orion_v2' AND TABLE_NAME='v2_rees'';
$string_title = DB::connection('information_schema')->table('COLUMNS')->select(DB::raw($req));
$result = DB::table('v2_rees')->simplePaginate(15);
return view('posts.reestr', ['results' => $result, 'string_title' => $string_title]);
} //
}
В reestr.blade.php имею такую картину:
<table><tr><td>
@foreach($string_title as $cell_title)
<td>
@php
echo $cell_title;
@endphp
</td>
@endforeach
</td></tr>
@foreach ($results as $string)
<tr>
@foreach($string as $cell)
<td >
@php
echo $cell;
@endphp
</td>
@endforeach
</tr>
@endforeach
</table>
Получаю такую ошибку:
Symfony\Component\Debug\Exception\FatalThrowableError
syntax error, unexpected 'orion_v2' (T_STRING)
Что я делаю не так? Не нашел в интернете как вернуть массив комментариев к столбцам таблицы, прошу ткнуть носом.