【问题标题】:How will I know the Controler’s Table in Database (Laravel)我如何知道数据库中的控制器表(Laravel)
【发布时间】:2019-05-28 14:42:30
【问题描述】:

我是 Laravel 框架的初学者。我想知道Controller如何识别它属于哪个表?

【问题讨论】:

标签: php laravel frameworks


【解决方案1】:

模型、视图和控制器是 MVC 模式的不同组件。你需要先了解这一点。控制器不识别表格。业务逻辑应该由模型/服务持有。控制器持有端点的规范,它将根据请求进行操作。视图当然包含标记和逻辑,具体取决于用例。

【讨论】:

  • 但是我怎么可能识别Controller的表,如果有很多Controller,我想知道它指的是哪个表呢?
  • 控制器不引用表格。当然,您可以为每个表定义一个模型,该模型映射到名称为模型名称复数形式的表,并以蛇形大小写分隔。例如,如果您的表名为 users,则创建一个类名为 User 的模型,如果表名为 user_details,则创建模型 UserDetail。如果您不想遵循传统的模型/表格映射流程,您可以在定义表格名称的模型中使用表格属性。例如class User extends Model { $protected $table = 'blah blah table name' }
  • 哇!它有效,现在我明白了。我今天学到了一些东西。谢谢你
  • 但是是否可以在单个页面(相同视图)内显示表值?
  • @Jaz 当然可以。
【解决方案2】:

视图包含您的应用程序提供的 HTML,并将您的控制器/应用程序逻辑与您的表示逻辑分开。视图存储在资源/视图目录中。一个简单的视图可能看起来像这样:

<!-- View stored in resources/views/greeting.blade.php -->

<html>
    <body>
        <h1>Hello, {{ $name }}</h1>
    </body>
</html>
Laravel 5.5 中的

模型是在AppApp\Models 文件夹中创建的。模型主要用于使用 Eloquent ORM 与数据库交互。 Eloquent 为数据库交互提供了简单的 ActiveRecord 实现。示例:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

控制器充当视图和模型之间的导向流量。控制器存储在App/Http/Controllers 目录中。示例:

<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    public function show($id)
    {
        return view('user.profile', ['user' => User::findOrFail($id)]);
    }
}

你可以从Laravel官方文档中学习。很有帮助。

【讨论】:

  • 这看起来很混乱。不过谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-02
  • 2016-07-21
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2021-11-06
相关资源
最近更新 更多