第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel-5.8:試圖獲取非對象的屬性“display_name”

Laravel-5.8:試圖獲取非對象的屬性“display_name”

PHP
楊__羊羊 2021-06-09 16:57:38
當(dāng)我嘗試評估來自類別模型的數(shù)據(jù)時,我在 Laravel 中收到“試圖獲取非對象的屬性‘display_name’”錯誤。我有 2 個模型:Post 和 Category;我有相應(yīng)的表格:Posts('id', 'title', 'body', 'cover_image')和Categories('id', 'display_name','name', 'key).數(shù)據(jù)透視表是:category_post這是我的帖子模型:namespace App;use Illuminate\Database\Eloquent\Model;class Post extends Model{    //Table Name    protected $table = 'posts';    //Model Relationships    public function tag(){        return $this->belongsToMany('App\Tag', 'id');    }    public function category() {        return $this->belongsTo('App\Category','id');    }}這是我的類別模型:namespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model{    protected $table = 'categories';//Model Relationships    public function post()     {        return $this->belongsTo('App\Post', 'id');    }}另外,這是我的 PagesController:namespace App\Http\Controllers;use Illuminate\Http\Request;use App\Post;class PagesController extends Controller{    public function index()    {        if ( !is_null(Post::class) ) {                $posts = Post::latest()->with('category')->paginate(5);            return view('pages.index')->with(['posts' => $posts]);        }        else {            return view('pages.empty');        }    }這是我的刀片文件:@if(count($posts) > 0)   @foreach($posts as $post)      <span> <i class="fa fa-folder-open"></i> {{ $post->category->display_name }} </span>   @endforeach@endif
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

問題是你沒有在你的帖子表中保存CATEGORY_ID,保存好類別 ID 并嘗試這樣:


更新 POST 模型:


namespace App;


use Illuminate\Database\Eloquent\Model;


class Post extends Model

{

    //Table Name

    protected $table = 'posts';


    // Setup fields of table "posts"

    protected $fillable = ['id', 'title', 'body', 'cover_image','category_id'];


    //Model Relationships

    public function tag(){

        return $this->belongsToMany('App\Tag', 'id');

    }

    // Relation category to foreign key 

    public function category() {

        return $this->belongsTo('App\Category','category_id');

    }

}

類別模型


namespace App;


use Illuminate\Database\Eloquent\Model;


class Category extends Model

{

    protected $table = 'categories';


    // Setup fields of table "category"

    protected $fillable = ['id', 'display_name', 'name', 'key'];


    //Model Relationships

    public function posts() 

    {

        return $this->hasMany('App\Post');

    }


}

看法


@if(count($posts) > 0)

   @foreach($posts as $post)

      <span> <i class="fa fa-folder-open"></i> {{ $post->category->display_name }} </span>

   @endforeach

@endif

移民帖 - 外鍵 category_id


Schema::create('posts', function (Blueprint $table) {


            // Your other fields.....


            // You must setup category like this

            $table->integer('category_id')->nullable()->unsigned();

            $table->foreign('category_id')->references('id')->on('categories')->onUpdate('cascade')->onDelete('cascade');

        });

控制器


namespace App\Http\Controllers;


use Illuminate\Http\Request;

use App\Post;


class PagesController extends Controller

{

    public function index()

    {

        $posts = Post::all();

        if (!empty($posts)) {  


            // Please let me know this test

            dd($posts[0]->category->display_name);

            return view('pages.index', ['posts' => $posts]);

        }

        else {

            return view('pages.empty');

        }

    }


查看完整回答
反對 回復(fù) 2021-06-25
?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

我認為您post()Category模型中的方法有誤。嘗試像這樣修改這個方法:

類別型號:

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

來源:Eloquent-relationship 一對多


查看完整回答
反對 回復(fù) 2021-06-25
  • 2 回答
  • 0 關(guān)注
  • 152 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號