"Попытка получить свойство 'id' необъекта (Представление: C: \ xampp \ htdocs \ CERCAA \ resources \ views \ admin \ posts \ edit.blade.php)" - PullRequest
0 голосов
/ 26 апреля 2019

Когда я редактирую свое сообщение, мне выдается следующее сообщение об ошибке

Trying to get property 'id' of non-object (View: C:\xampp\htdocs\CERCAA\resources\views\admin\posts\edit.blade.php)

public function update(Request $request, $id)
{
    $this->validate($request, [
        'title' => 'required',
        'content' => 'required',
        'category_id' => 'required'
    ]);

    $post = Post::find($id);

    if($request->hasFile('featured'))
    {
        $featured = $request->featured;

        $featured_new_name = time() . $featured->getClientOriginalName();

        $featured->move('uploads/posts', $featured_new_name);

        $post->featured = 'uploads/posts/'.$featured_new_name;

    }
    $post->title = $request->title;

    $post->content = $request->content;

    $post->category_id = $request->category_id;

    $post->save();

    Session::flash('success', 'Post updated successfully.');

    return redirect()->route('posts');

}

и блейд-код

<div class="form-group">

Выберите категорию

@ foreach ($ category как $ category)

id}} "

@ if ($ post -> $ category-> id == $ category-> name)

выбрано

@ endif

{{$ category-> name}}

@ endforeach

  • Элемент списка

Ответы [ 4 ]

0 голосов
/ 26 апреля 2019

Контроллер ...

хранилище публичных функций (Запрос $ request) {

    $this->validate($request, [


       'title' =>'required',
        'featured'=>'required|mimes:jpeg,pdf,docx,png:5000',

        'file'=>'required|mimes:jpeg,pdf,docx,png:5000',
        'content'=>'required',
        'category_id'=>'required',

    ]);




    $featured= $request->featured;
    $featured_new_name=time().$featured->getClientOriginalName();
    $featured->move('uploads/posts', $featured_new_name);

    $file=$request->file;
    $file_name=time().$file->getClientOriginalName();
    $file->move('uploads/posts', $file_name);

    $post = Post::create([

        'title'=>$request->title,
        'content'=>$request->content,
        'featured'=>'uploads/posts/'. $featured_new_name,
        'file'=>'uploads/posts'. $file_name,
        'category_id'=>$request->category_id,
        'slug'=>str_slug($request->title)


    ]);


  Session::flash('success', 'New Blog has been Published on Website for Particular Menu');

  return redirect()->back();

}
0 голосов
/ 26 апреля 2019

Метод My Post для поста и категории

Приложение пространства имен;

использовать Illuminate \ Database \ Eloquent \ Model;

Класс расширяет категорию Модель {

protected $table = 'categories'; // here set table's name
protected $primaryKey = 'id'; // here set table's primary Key field name
protected $fillable = ['id']; // here set all table's fields name




public function posts()
{
    return $this->hasMany('App\Post');
}

Приложение пространства имен;

использовать Illuminate \ Database \ Eloquent \ Model; использовать Illuminate \ Database \ Eloquent \ SoftDeletes;

Класс Почты расширяет Модель {

public function category()

{
    return $this->belongsTo('App/Category');
}


public function getFeaturedAttribute($featured)
{
    return asset($featured);
}

use SoftDeletes;

protected $dates=['deleted_at'];


protected $fillable=['title','content','category_id','featured','slug'];

}

}

0 голосов
/ 26 апреля 2019

Edit.blade.php

@ распространяется ( 'layouts.app')

@ раздел ( 'содержание')

          <div class="row">
            <div class="col-lg-12">
                <div class="card">
                    <div class="card-header bg-info">
                        <div class="text-center">
                            <h4 class="m-b-0 text-white">


                                <div class="panel panel-default">
                                    <div class="panel-heading">

                                        Edit Post:{{$post->title}}
                                    </div>


                                    <div class="panel-body">
                                        <form action="{{route('post.update', ['id'=>$post->id])}} " method="post" enctype="multipart/form-data">

                                            {{csrf_field()}}

                                            <div class="form-group">

                                                <label for ="title">Title</label>

                                                <input type="text" name="title" class="form-control" value="{{$post->title}}">

                                            </div>



                                            <div class="form-group">

                                                <label for ="featured">Featured image</label> <input type="file" name="featured" class="form-control">

                                            </div>

                                               <div class="form-group">
                                                <label for ="category">Select a Category</label>
                                                <select name="category_id" id="category" class="form-control">
                                                    @foreach($categories as $category)
                                                        <option value="{{$category->id}}"
                                                          @if(property_exists($post, 'category') && $post->$category['id'] == $category->name)
                                                            selected
                                                             @endif
                                                       >{{$category->name}}</option>
                                                    @endforeach
                                                </select>

                                            </div>



                                            <div class="form-group">

                                                <label for ="content">Content</label>

                                                <textarea name="content" id="content" cols="5" rows="5" class="form-control"> {{$post->content}}</textarea>
                                            </div>


                                            <div class="form-group">
                                                <div class="text-center">

                                                    <button class="btn btn-success" type="submit"> Update Post</button>
                                                </div>


                                            </div>


                                        </form>

                                    </div>


                                </div>


                            </h4>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<!-- Row -->

@ остановка

0 голосов
/ 26 апреля 2019

Это область вашего блэйда, где вы получаете проблему:

<label for ="category">Select a Category</label>
<select name="category_id" id="category" class="form-control">
    @foreach($categories as $category)
        <option value="{{$category->id}}"
          @if(property_exists($post, 'category') && $post->$category['id'] == $category->name)
               selected
           @endif
       >{{$category->name}}</option>
    @endforeach
</select>

Где вы выбираете и предоставляете $ категории для этого шаблона блэйда?Я имею в виду метод контроллера, который загружает лезвие редактирования?Можете ли вы также опубликовать этот код?И, пожалуйста, обновите свой вопрос вместо публикации ответов.

...