doufang3001 2017-03-20 15:54
浏览 44
已采纳

模型没有链接到laravel php中的表

I have a table named tasks and a model named Task. In my controller method when i run this piece of code

     <?php

        namespace App\Http\Controllers;

        use DB;
        //use app\Task;
        use DateTime;
        use Illuminate\Http\Request;
        use Illuminate\Support\Facades\Input;

        class Task_Controller extends Controller
        {
        //
             public function decide()
             {

             if ($input=="show all task")
             {
                  //$rows=DB::table('task')->get();
                  $rows=\App\Task::all();
                  foreach($rows as $values)
                  {
                     foreach($values as $key=>$val)
                     echo "$key  :  $val <br>";
                     echo "<br><br>";
                  }
              }
         }

It gives me following error: SQLSTATE[HY000]: General error: 1 no such table: tasks (SQL: select * from "tasks")

That is the model should have linked to the task table instead it is linked to the tasks table Why??.

How to make model gets linked to a specific table.

My model class code goes like this

       namespace App;

       use Illuminate\Database\Eloquent\Model;

       class Task extends Model
       {
          //
       }
  • 写回答

3条回答 默认 最新

  • dongyan6503 2017-03-20 15:59
    关注

    You should name your table tasks, this is the best option.

    Another way to fix this is to use $table property:

    protected $table = 'task';
    

    Note that we did not tell Eloquent which table to use for our Flight model. By convention, the "snake case", plural name of the class will be used as the table name unless another name is explicitly specified. So, in this case, Eloquent will assume the Flight model stores records in the flights table. You may specify a custom table by defining a table property on your model

    https://laravel.com/docs/5.4/eloquent#defining-models

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?