📜  拉拉维尔 |雄辩的模型基础

📅  最后修改于: 2022-05-13 01:56:40.236000             🧑  作者: Mango

拉拉维尔 |雄辩的模型基础

Laravel 是一个基于MVC的PHP框架。在 MVC 架构中,“ M ”代表“模型”。模型基本上是一种在数据库中的表中查询数据的方法。 Laravel 提供了一种使用Eloquent ORM(对象关系映射)的简单方法。每个表都有一个模型来与表交互。

创建一个模型:为了创建一个 Eloquent模型,Laravel 提供了一个 Artisan 命令,如下所示:

php artisan make:model Article

运行上述命令后,将创建一个名为Article 的文件。 app目录下的PHP文件。文件内容如下所示:

检索数据:要从数据库中检索数据,我们可以使用以下两种方法:

  • 这里, all()方法会将表中的所有数据以数组的形式返回,并存储在$articles变量中。
    public function index() {
            
            $articles = \App\Article::all();
    
            return view('gfg')->with('articles', $articles);
    
    }
  • 我们还可以通过使用 ' where() ' 来获取特定记录,如下所示:
    public function index() {
            
            $articles = \App\Article::all()->where('id', 1);
    
            return view('gfg')->with('articles', $articles);
    
    }

插入数据:要在数据库中插入数据,我们将使用save()方法,如下所示:

  • 在这里,我们创建一个新文章并将其存储在$article变量中。 topiccontent属性用于存储表中各个列中指定的数据。然后使用“save()”方法将数据插入数据库。如果插入成功,则会显示成功消息。
    public function insert() {
    
        $article = new Article;
    
        $article->topic = "View in Laravel";
        $article->content = "View is the data display at the user end.";
    
        $article->save();
    
        echo "Insert Successful!";
    
    }

    注意:表中的created_atupdated_at字段将自动插入时间戳。

更新数据:要更新数据库中的数据,我们将再次使用save()方法,如下所示:

  • 在这里, find()方法用于指定我们要在数据库中更新的记录。括号中的数字是id即主键。现在为记录的主题字段赋予一个新值,该值将更改旧值。然后使用' save() '方法将数据插入数据库。如果更新成功,则会显示成功消息。
    public function update() {
    
            $article = \App\Article::find(1);
    
            $article->topic = "Laravel";
    
            $article->save();
    
            echo "Update Successful!";
    
    }

    注意:表中的updated_at字段将自动插入时间戳。

删除数据:要删除数据库中的数据,我们将使用delete()方法,如下所示:

  • 在这里, find()方法用于指定我们要从数据库中删除的记录。括号中的数字是id即主键。然后使用delete()方法。如果删除成功,则会显示成功消息。
    public function delete() {
    
            $article = \App\Article::find(1);
    
            $article->delete();
    
            echo "Delete Successful!";
    
    }

下面的示例说明了它们中的每一个:

例子:

  1. 创建并连接到MySQL 数据库
  2. 使用以下 Artisan 命令创建迁移:
    php artisan make:migration create_articles_table

    然后在database/migrations目录创建的迁移文件中的up()函数中编写以下代码。

    Schema::create('articles', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('topic');
        $table->string('content');
        $table->timestamps();
    });
  3. 现在运行 migrate 命令来创建迁移:
    php artisan migrate
  4. 现在使用以下 Artisan 命令创建模型:
    php artisan make:model Article

    文章。app目录中创建的PHP文件应如下所示:

  5. 现在使用以下 Artisan 命令创建一个控制器:
    php artisan make:controller ArticleController

    文章控制器。app/Http/Controllers目录中创建的PHP文件应如下所示:

  6. 现在,您必须将控制器文件更改为以下代码或复制下面的代码并将其粘贴到上一步中创建的控制器文件中。
    with('articles', $articles);
      
        }
      
        // Insert function
        public function insert() {
      
        $article = new Article;
      
        $article->topic = "View in Laravel";
        $article->content = "View is the data display at the user end.";
      
        $article->save();
      
        echo "Insert Successful!";
      
        }
          
        // Update function
        public function update() {
      
            $article = \App\Article::find(1);
      
            $article->topic = "Laravel";
      
            $article->save();
      
            echo "Update Successful!";
      
        }
          
        // Delete function
        public function delete() {
      
            $article = \App\Article::find(1);
      
            $article->delete();
      
            echo "Delete Successful!";
      
        }
    }
    
  7. 现在,创建一个名为“ gfg.blade”的视图。 'resources/views' 目录中的PHP ' 和该文件中的以下代码。
    
    
    
        GeeksforGeeks
        
    
    
      
        

    Articles Topics

        
              @foreach($articles as $article)             
    1. {{ $article->topic }}
    2.         @endforeach     
      
  8. 现在,通过在 web.xml 中编写以下内容来创建路线路径目录中的PHP文件。

    注意:注释或从文件中删除任何以前的路线。

    Route::get('/', 'ArticleController@index');
    
    Route::get('/insert', 'ArticleController@insert');
    
    Route::get('/update', 'ArticleController@update');
    
    Route::get('/delete', 'ArticleController@delete');
  9. 现在使用以下 Artisan 命令运行 Laravel 应用程序:
    php artisan serve

输出:

  1. 对于索引函数:
  2. 对于插入函数:

  3. 对于更新函数:

  4. 对于删除函数:

参考: https://laravel.com/docs/6.x/eloquent