Laravel 在到达路线时创建数据库条目?
Posted
技术标签:
【中文标题】Laravel 在到达路线时创建数据库条目?【英文标题】:Laravel create database entery when hitting a route? 【发布时间】:2016-07-02 18:02:45 【问题描述】:我仍在自学 laravel。我正在 laravel 中制作订单,我有一张装满产品的桌子,我想制作它,以便在下一个新订单并添加产品时。当我点击新订单时,它会自己下订单,它会创建一个新的订单号并将其保存到数据库中?
最好的方法是制作一个订单表
Schema::create('westcoOrders', function (Blueprint $table)
$table->increments('id');
$table->string('orderNumber');
$table->json('content');
$table->tinyInteger('sent')->default(0);
$table->tinyInteger('delivered')->default(0);
$table->timestamps();
);
或者最好有一个表多个表,所以我有一个像上面没有 json 条目的表,然后有一个这样的 westcoOrderItems 表?
Schema::create('westcoOrderItems', function (Blueprint $table)
$table->string('orderNumber');
$table->string('quantity');
$table->string('productName');
$table->string('productCode');
$table->string('price');
$table->timestamps();
);
然后我将订单号链接到另一个表。或者这是一个很长的路要走? 如果我这样做,当我点击新的订单路线时,我将不得不找到一种方法来制作订单号?
我觉得我做错了/很长的路要走?p>
【问题讨论】:
【参考方案1】:在我看来,像下面这样会更好:
// For orders
Schema::create('orders', function (Blueprint $table)
$table->increments('id');
$table->tinyInteger('is_delivered')->default(0);
$table->tinyInteger('is_paid')->default(0);
$table->timestamps();
);
// For ordered_items (one order may contain many products/ordered_items)
Schema::create('ordered_items', function (Blueprint $table)
$table->increments('id')->unsigned();
$table->integer('order_id')->unsigned(); // fk for order.id
$table->string('quantity')->unsigned();
$table->string('productName');
$table->string('productCode');
$table->decimal('price', 10, 2);
);
然后是模型,例如:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
public function items()
return $this->hasMany('Item::class');
ordered_items
的 Item
类:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Item extends Model
protected $table = 'ordered_items';
public function order()
return $this->belongsTo(Order::class);
希望你明白了。这是最简单的。
【讨论】:
谢谢 这就是我想要的。现在唯一的另一件事是当我想创建新订单时,我将如何创建新订单输入?? 欢迎您!好吧,你可以使用 'Order.create()' 或 laravel 提供的其他方式。 好的,谢谢,我会用它。我会让你知道我过得怎么样 我已经完成了它的所有工作但是.. 我不能使用retrun $this->belongsTo(westcoOrders::class);
因为它会出现这个错误syntax error, unexpected '$this' (T_VARIABLE)
你有语法错误,检查正确,也试试retrun $this->belongsTo('\App\westcoOrders');
类似语法。以上是关于Laravel 在到达路线时创建数据库条目?的主要内容,如果未能解决你的问题,请参考以下文章