【问题标题】:Laravel 5.1 Eloquent Many to Many RelationshipLaravel 5.1 雄辩的多对多关系
【发布时间】:2015-12-16 18:26:17
【问题描述】:

我必须进行数据库迁移才能进行 Eloquent 多对多关系,还是可以不进行数据库迁移?

我的桌子是;

k_p_user 和字段是;身份证、姓名、约会对象

k_p_tree 和字段是; id,user_id,bear_id,name,datee

k_p_bear 和字段是; id,user_id,name,datee

k_p_picnic 和字段是; id,user_id,bear_id,name,datee

我正在使用 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]);
    }
}
?>

这是我的错误

k_p_picnic.php 第 8 行中的 FatalErrorException:语法错误,意外 '使用' (T_USE),期待 \ (T_NS_SEPARATOR) 或 ';'或'{'

【问题讨论】:

  • 不,你可以在没有数据库迁移的情况下使用 Eloquent。 Laravel Migrations 迁移就像数据库的版本控制,允许团队轻松修改和共享应用程序的数据库模式。迁移通常与 Laravel 的架构构建器配对,以轻松构建应用程序的数据库架构。 它与 eloquent 无关。

标签: php laravel-5.1


【解决方案1】:

不,Eloquent 关系不需要迁移。迁移只是在 PHP 中为创建和维护数据库表提供了一个简单的接口。如果您已经有预先存在的数据库表或创建它们的替代方法,则没有问题。

如果您对多对多关系感到困惑,请务必阅读docs。对于该关系类型,您将需要一个包含要连接的两个模型的 ID 的数据透视表。看起来您的k_p_picnic 表就是这样。然后您需要在模型对象上定义每个关系。如果你不遵循正常的 Laravel 表命名约定,你可以包含一个表名。在你的情况下,你不是,所以只需将它作为第二个参数传入。例如,您的 User 模型将具有此方法:

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

【讨论】:

    【解决方案2】:

    我看到然后错误

    在我的模型中

    而不是&lt;?php namespace App;
    我写了&lt;?php namespace App

    感谢大家的精彩回答,尤其是 dipesh 和 Andy Noelker。我现在知道我可以拥有一个预先存在的数据库,迁移与 Eloquent 无关

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 2013-01-22
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 2018-10-27
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多