gpt4 book ai didi

php - Laravel 4 模型,如何使用它们

转载 作者:可可西里 更新时间:2023-10-31 23:09:23 25 4
gpt4 key购买 nike

我研究 Laravel 有一段时间了,我决定最终选择它。这是我第一次使用 PHP 框架,我在理解模型的用途时遇到了一些困难。

我已经阅读了很多新手指南,这几乎是他们模型中的所有内容(Laravel 明智的),

class Model extends Eloquent {

}

然后在他们的 Controller 中他们做这样的事情,

$model = new Model;
$model->text = "text";
$model->save();

我不是 MVC 模式方面的专家(可能是最大的新手),但我认为重点(或至少是一个小重点)是将许多操作分开。并且该模型应该负责处理数据库方面的所有事情。所以在某种程度上,这对我来说似乎是错误的,或者至少不是最佳实践。

但是如果您开始设置一堆函数,您可能会遇到每个表都有一个模型的问题。这又似乎不对。所以你必须让模型在某种程度上是模棱两可的。从某种意义上说,它可以对任何表采取任何操作?

目前这一切对我来说真的很困惑。

最佳答案

您将需要每个表的模型,因为还有其他与模型相关的东西无法共享,例如列名和验证,但如果您认为自己在重复自己,则可以创建一个 BaseModel 并添加所有方法甚至重载其中的 Eloquent 方法:

class BaseModel extends Eloquent {

public function whatever() {

}

public function save(array $options = []) {
// do what you need to do
parent::save();
}

}

然后使用它创建您的模型:

class Order extends BaseModel {

}

但是你在模型上不需要太多,如果你的模型和表名遵循 Laravel 模式(在这种情况下表名将是'orders'),那么你只需要这个简单的声明来让模型工作你的 table 。

编辑:

Controller 旨在将数据从模型传输到 View ,但它们不应该对您的数据了解太多,几乎所有关于它们的信息都应该存在于您的模型中(“胖模型,瘦 Controller ”),因此它们需要只知道足以“控制”。

class OrdersController extends BaseController {

public function process()
{
$order = Order::find( Input::get('orderId') )->process();

return View::make('orders.showProcessedOrder')->with('order',$order);
}

}

关于php - Laravel 4 模型,如何使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com