2015-12-15 66 views
2

我必須做數據庫遷移才能做到雄辯多對多關係,還是我可以在沒有數據庫遷移的情況下做到這一點?Laravel 5.1雄辯多對多關係

我的表格是;

k_p_user和字段是; id,name,datee

k_p_tree和fields are; id,user_id,bear_id,name,datee

k_p_bear和fields are; id,user_id,name,datee

k_p_picnic和fields are; ID,USER_ID,bear_id,姓名,日期E

我使用NetBeans 8.0.2

這是我k_p_picknic

<?php namespace App 
use Illuminate\Database\Eloquent\Model; 
class k_p_picnic extends Model{ 
} 
?> 

型號這是我的控制器

<?php 
namespace App\Http\Controllers; 
use Illuminate\Foundation\Bus\DispatchesJobs; 
use Illuminate\Routing\Controller as BaseController; 
use Illuminate\Foundation\Validation\ValidatesRequests; 
use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 
use App\k_p_picnic; 
use Illuminate\Support\Facades\Request as Request; 
class Controller extends BaseController 
{ 
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 

    public function fixoption($table){ 
     $gender= k_p_picnic::all(); 
     dd($gender) 
     return view('profile',['jj'=>$gender]); 
    } 
} 
?> 

這是我的錯誤

FatalErrorExcep第8行:語法錯誤,意外 'use'(T_USE),期待\(T_NS_SEPARATOR)或';'或'{'

+0

不,您可以使用Eloquent而無需數據庫遷移。 [Laravel Migrations](http://laravel.com/docs/5.1/migrations#introduction)_遷移就像數據庫的版本控制,允許團隊輕鬆修改和共享應用程序的數據庫模式。遷移通常與Laravel的架構構建器配合使用,以輕鬆構建應用程序的數據庫架構。它與雄辯無關。 – dipesh

回答

2

不,遷移對於雄辯關係不是必需的。遷移只是在PHP中爲創建和維護數據庫表提供了一個簡單的界面。如果您已有預先存在的數據庫表或創建它們的替代方法,則不存在問題。

如果您對多對多關係感到困惑,請務必閱讀docs。對於那種關係類型,您需要一個數據透視表,其中包含您要連接的兩個模型的ID。看起來好像你的k_p_picnic表就是這樣。然後,您需要定義模型對象上的每個關係。如果您不遵循正常的Laravel表命名約定,則可以包含表名。在你的情況下,你不是,所以就把它作爲第二個參數傳入。例如,您的用戶模型將有這樣的方法:

public function bears() 
{ 
    return $this->belongsToMany('App\Bear', 'k_p_picnic'); 
} 
0

我所看到的,則錯誤

在我的模型

,而不是<?php namespace App;
我寫<?php namespace App

謝謝大家你的美麗答案尤其是迪佩什和安迪諾爾克。我現在知道我可以有一個預先存在的數據庫,遷移與Eloquent沒有任何關係