Печать Laravel Специфика c данных (картинка) из базы данных - PullRequest
0 голосов
/ 23 февраля 2020

Я использую оболочку DOMPDF для Laravel. Я могу напечатать изображение, используя этот код:

public function print1()
    {
            $pdf = App::make('dompdf.wrapper');
            $pdf->loadHTML('<img style="width:800px;height:1000px;" src="pic/m_cert.png">');
            return $pdf->download('medcert.pdf');
    }

И теперь я пытаюсь распечатать изображение из моей базы данных.

public function print_img($id)
{
            $bprint = UserInfo::find($id);
          $pdf = PDF::loadView("<img src='upload/userpics/'.$bprint->user_info_img>");
            return $pdf->download('Picture.pdf');
}

Это мои маршруты и кнопка из моего blade

Route::get('/print_img/{id}','PDF_Controller@print_img')->name('print_img');

Это моя кнопка

<a class="btn" href="{{ route('print_img',$user->user_info_id_number) }}">
                  Print
            </a>

, и я получаю

Trying to get property 'user_info_img' of non-object

Я проверил свою базу данных, и имя верное. Я также ввожу свою модель use \ UserInfo;

Во-вторых, как мне ввести имя пользователя в

 return $pdf->download('user_img'.$user->user_info_id_number.'.pdf');

Это сработает?

1 Ответ

1 голос
/ 23 февраля 2020

UserInfo::find($id); действует на первичный ключ, если вы установили первичный ключ в своей модели на что-то отличное от id, выполнив:

в противном случае вы можете установить другой ключ в модели

protected  $primaryKey = 'slug';

затем find выполнит поиск по этому ключу.

Laravel также ожидает, что идентификатор будет целым числом, если вы используете что-то отличное от целого числа (например, строку), вам нужно установить увеличивая свойство вашей модели до false:

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