Shelderr
@Shelderr

Как применить к столбцу таблицы бд имя загруженного файла через Request?

Здравствуйте!
Я хочу для блога сделать загрузку изображения для каждой записи. Я форматирую изображение как надо, изменяю его имя и сохраняю в папку. Далее хочу применить новое имя изображения к полю БД "article_wall", но он сохраняет путь к tmp. Заранее благодарю за ответ.
Последнее изображение показывает var_dump($request['article_wall']);
Контроллер

public function store(ArticleRequest $request)
    {
        if($request->hasFile('article_wall')) {
            $image = $request->file('article_wall');
            $imageName = time() . "." . $image->getClientOriginalExtension();
            $savePath = public_path('/uploads/articleImages/' . $imageName);
            Image::make($image)
                ->resize(320,240)
                ->save($savePath);
            $request['article_wall'] = $imageName;
        }
        echo '<pre>';
            var_dump($request['article_wall']);
        echo '</pre>';
        var_dump($imageName);
        //сохранение статьи
        Auth::user()->articles()
            ->create($request->all());
        //$article = Article::create();
       // $article->save();
        session()->flash('flash_message', 'Статья успешно создана');
        return redirect('news');
    }

Модель Articles
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Carbon\Carbon;

class Article extends Model
{
    /**
     * Разрешённые поля для статей
     *
     * @var array
     */
    protected $fillable = [
        'title',
        'body',
        'published_at',
        'article_wall'
    ];
    /**
     * даты, которые рассматриваются как экземпляры Carbon
     *
     * @var array
     */
    protected $dates = ['published_at'];

    /**
     * Отображает настоящие статьи
     *
     * @param $query
     */
    public function scopePublished($query) {
        $query->where('published_at', '<=', Carbon::now());
    }
    /**
     * Статьи времени больше настоящего
     *
     * @param $query
     */
    public function scopeUnpublished($query) {
        $query->where('published_at', '>', Carbon::now());
    }

    /**
     * Даёт аттрибут времени для статьи
     *
     * @param $date
     */
    public function setPublishedAtAttribute($date) {
        $this->attributes['published_at'] = Carbon::parse($date);
    }

    /**
     * Статья пренадлежит пользователю
     *
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function user() {
        return $this->belongsTo('App\User');
    }



}

Форма
<div class="form-group">
    {!! Form::label('title', 'Заголовок :') !!}
    {!! Form::text('title', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
    {!! Form::label('body', 'Контент') !!}
    {!! Form::textarea('body', null, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
    {!! Form::label('published_at',"Дата публикации :") !!}
    {!! Form::input('date', 'published_at', date('Y-m-d'), ['class' => 'form-control']) !!}
</div>

<div class="form-group">
    {!! Form::label('article_wall', 'Изображение') !!}
    {!! Form::file('article_wall') !!}
</div>
<div class="form-group">
    {!! Form::submit($submitButtonText, ['class' => 'btn btn-primary form-control']) !!}
</div>

Как сохраняется
21c0228654424bbb9e5a0be23c25ce91.png
var_dump($request['article_wall']);
df22410a6f674f22831123199edc6ec8.png
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
ernesto77
@ernesto77
php, rb, py, js, webdev
Auth::user()->articles()
            ->create($request->all()); // в массиве $request->all() надо заменить значение ключа pathName на $imageName
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы