2
Urlsビューでカテゴリ名をエコーする方法はありますか?私は、クエリは、このビュー内でhasOneプロパティを取得する方法は?
SELECT * FROM categories WHERE categories.id = 1
のURLテーブル
id | url | category_id
1 www.asdf.com 1
Categoriesテーブル
id | category
1 Something
のようなものであるべきと考えてい
Column not found: 1054 Unknown column 'categories.url_id' in 'where clause'
(SQL: select * from `categories` where `categories`.`url_id` = 23 and `categories`.`url_id` is not null limit 1
:私はこのエラーを取得します
テーブル
public function up()
{
Schema::table('urls', function(Blueprint $table){
$table->integer('category_id')->unsigned()->nullable();
$table->foreign('category_id')->references('id')->on('urls');
});
}
をURLへの列CATEGORY_IDを追加するための移行(HM私はこの問題を解決する必要があるとreferences('id')->on('categories')
を置くと信じて)
のURLモデル
class Url extends Model
{
protected $table = 'urls';
public function category()
{
return $this->hasOne('App\Category');
}
}
URL索引コントローラ
$urls = URL::paginate(100)
return view('urls.index')->with('urls', $urls);
Urls.indexビュー
{{ $url->category->category }}
私はこの
public function category()
{
return $this->belongsTo('App\Category');
}
にのURLモデルを変更し、私はvar_dump($url->category)
を行うときに、正しいSQLクエリが発生した場合:
select * from `categories` where `categories`.`id` = '1' limit 1
が、エラーがTrying to get property of non-object
私が書いたように私がしたが、私は見出しました何が問題だったのですか?category_idのURLにNULL値がありました。これは動作します @if($ url-> category_id) {{$ url-> category-> category}} @endif –