Laravel 5.1刷新并播种单个表

时间:2015-11-04 10:57:35

标签: laravel laravel-5 seeding

我希望在Laravel 5.1中刷新并播种单个表。这甚至可能吗?

我已尝试过以下内容,但它会出错(语法不正确)。

php artisan migrate:refresh --path=database/migrations/CreateTableTimesheet

如果我使用:php artisan migrate:refresh,它只会说:

  

无需迁移

6 个答案:

答案 0 :(得分:19)

您可以使用migrate:refresh命令回滚所有迁移,然后执行migrate命令。此命令有效地重新创建整个数据库:

php artisan migrate:refresh

您可以使用--class选项指定要单独运行的特定播种器类:

php artisan db:seed --class=UserTableSeeder

完整的代码将是:

php artisan migrate:refresh
php artisan db:seed --class=UserTableSeeder

希望这有帮助。

答案 1 :(得分:0)

也许首先只是备份数据库,删除它并检查整个播种,迁移和刷新机制是否有效。但首先转储工匠自动加载。

答案 2 :(得分:0)

最好先截断同一张表然后再种子:-

public function run()
{
    Table::truncate();
    //seed your table here
}

然后您可以像这样运行相同的播种机:-

php artisan db:seed --class=YourSeeder

答案 3 :(得分:0)

      if (isset($_REQUEST["submit"]))
      {
         $chk=$_REQUEST["chk"];
          $a=implode(",",$chk);
          echo $a;
      }
?>
 <?php


 if(isset($_POST['search']))

  {
   $valueToSearch = $_POST['valueToSearch'];
      // search in all table columns
     // using concat mysql function
     $query = "SELECT * FROM `tb_student` WHERE CONCAT(`student_id`, `student_fname`, 
   `student_mname`, `student_lname`, `student_course`) LIKE '%".$valueToSearch."%'";
     $search_result = filterTable($query);

     }
     else {
      $query = "SELECT * FROM `tb_student`";
      $search_result = filterTable($query);
      }

      // function to connect and execute the query
     function filterTable($query)
      {
     $connect = mysqli_connect("localhost", "root", "", "db_amclms");
     $filter_Result = mysqli_query($connect, $query);
     return $filter_Result;
     }

     ?>

     <!DOCTYPE html>
     <html>
     <head>
    <title>PHP HTML TABLE DATA SEARCH</title>
    <style>
        table,tr,th,td
        {
            border: 1px solid black;
        }
    </style>
</head>
<body>

    <form action="search.php" method="post">
        <input type="text" name="valueToSearch" placeholder="Search Student"><br><br>
        <input type="submit" name="search" value="Search"><br><br>

        <table>
            <tr>
                <th>Id</th>
                <th>First Name</th>
                 <th>Middle Name</th>
                <th>Last Name</th>
                <th>Course</th>

                <th><input type="submit" value="submit" name="submit"></th>


            </tr>

  <!-- populate table from mysql database -->
            <?php while($row = mysqli_fetch_array($search_result)):?>
            <tr>
                <td><?php echo $row['student_id'];?></td>
                <td><?php echo $row['student_fname'];?></td>
                <td><?php echo $row['student_mname'];?></td>
                <td><?php echo $row['student_lname'];?></td>
                <td><?php echo $row['student_course'];?></td>
                <td><input type="checkbox" name="chk[]" value="<?php echo $row["student_id"] ?>"> </td>


            </tr>

            <?php endwhile;?>
        </table>
    </form>

</body>

将清除状态表

所以你可以做

php artisan tinker

当我不想清除所有表,尤其是用户时,我发现这很有用。

答案 4 :(得分:0)

我认为,到目前为止,没有任何答案可以解决迁移和植入表的问题。因此,给定迁移文件database/migrations/create_foo_table.php和包含database/seeds/FooTableSeeder.php种子类的种子文件FooTableSeeder,您可以执行以下操作:

php artisan migrate:refresh --path=database/migrations/create_foo_table.php
php artisan db:seed --class=FooTableSeeder

这将回滚,迁移Foo表并为其添加种子。请参阅:Laravel 5.1文档中的rolling back migrationsrunning seeders(在撰写本文时,Laravel 7.x已经发布,语法没有更改)。

答案 5 :(得分:0)

您可以分两个步骤进行操作:

  1. 刷新您的特定表格:
php artisan migrate:refresh --path=database/migrations/00_create_foo_table.php
  1. database/seeds/DatabaseSeeder.php中设置的种子表:
composer dump-autoload
php artisan db:seed

===附加信息===

您可以在DatabaseSeeder.php中注释不想使用的播种机:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call([
            FooSeeder::class,
            // BarSeeder::class,
            // UserSeeder::class,
        ]);
    }
}

在此示例中,将仅传递database/seeds/FooSeeder.php