“试图获取非对象的属性'id'(查看:C:\ xampp \ htdocs \ CERCAA \ resources \ views \ admin \ posts \ edit.blade.php)”

问题描述 投票:0回答:4

当我编辑我的帖子时,我会收到以下错误消息提示

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 as $ category)

ID}}”

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

@endif

{{$分类 - >名称}}

@endforeach

  • 项目清单
laravel-5 laravel-5.2 laravel-5.1
4个回答
0
投票

帖子和类别的My Post方法

命名空间App;

使用Illuminate \ Database \ Eloquent \ Model;

class Category扩展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');
}

命名空间App;

使用Illuminate \ Database \ Eloquent \ Model;使用Illuminate \ Database \ Eloquent \ SoftDeletes;

class Post扩展Model {

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
投票

Edit.blade.php

@extends( 'layouts.app')

@section( '内容')

          <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
投票

控制器...

公共功能商店(Request $ 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
投票

这是刀片中您遇到问题的区域:

<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>

你在哪里获取并为此刀片模板提供$ category?我是指加载编辑刀片的控制器方法?你也可以发布这些代码吗?请更新您的问题,而不是发布答案。

© www.soinside.com 2019 - 2024. All rights reserved.