2016-07-10 65 views
1

問題的存在是因爲transhed被添加,與tablerelation衝突。Laravel 5.錯誤:我的模型有一個關係和一個關係。

型號:

<?php 

namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 
use Illuminate\Database\Eloquent\SoftDeletes; 

class Post extends Model 
{ 
    use SoftDeletes; 
    protected $dates = ['deleted_at']; 

    public function category() { 
     return $this->hasOne('App\Models\Category', 'id', 'category_id'); 
    } 
} 

控制器:

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Models\Category; 
use App\Models\Post; 
use Session; 
use Auth; 

class PostController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $posts = new Post(); 
     // $allPosts = $posts::onlyTrashed()->get(); 
     // $allPosts = $posts::withTrashed()->get(); 
     $allPosts = $posts::all(); 
     $postDeleted = $posts::onlyTrashed()->count(); 
     return view('admin.post.index', ['posts' => $allPosts, 'postDeleted' => $postDeleted]); 
    } 

...

查看:

 @foreach ($posts as $post) 
     <tr class="table-pages-list-item"> 
      <td><input type="checkbox"></td> 
      <td>{{ $post->h1 }}</td> 
      <td>{{ $post->url }}</td> 
      <td>{{ $post->category->h1 }}</td> 
      <td> 
      @if ($post->published) 
         <span class="label label-success">Да</span> 
        @else 
         <span class="label label-danger">Нет</span> 
        @endif 
      </td> 
      <td>{{$post->updated_at}}</td> 
      <td> 
      <a href="#"type="button" class="btn btn-primary" data-toggle="tooltip" data-placement="left" title="Редактировать"> 
       <i class="fa fa-edit"></i> 
      </a> 
      <a href="#" target="_blank" type="button" class="btn btn-success" data-toggle="tooltip" data-placement="top" title="Просмотреть"> 
       <i class="fa fa-external-link"></i> 
      </a> 
      <form action="{{ action('[email protected]', ['id' => $post->id]) }}" method="post"> 
       <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
       <input type="hidden" name="_method" value="DELETE"> 
       <button type="submit" class="btn btn-danger" data-toggle="tooltip" data-placement="right" title="В корзину"> 
       <i class="fa fa-trash-o"></i> 
       </button> 
      </form> 
      </td> 
     </tr> 
     @endforeach 

這裏錯誤<td>{{ $post->category->h1 }}</td>

試圖讓非對象的屬性(查看:C:\ OpenServer的\域\ laravel \資源\意見\ ADMIN \後\ index.blade.php)

回答

0

,因爲你是你的命名外鍵爲category_id像慣例,我想你應該這樣定義

public function category() { 
    return $this->hasOne('App\Models\Category'); 
} 

雄辯的關係,你應該看到Model.php文件hasOne方法如何定義一對一的關係。

0

請檢查您的類別表有哪些字段! 它是否包含'h1'字段,您正在訪問'h1'鍵,但可能不在此處