我有一个名为tasks的表和一个名为Task的模型。在我的控制器方法中运行这段代码
<?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>";
}
}
}
它给了我以下错误: SQLSTATE [HY000]:一般错误:1没有这样的表:tasks(SQL:select * from“tasks”)
那就是模型应该链接到任务表,而是链接到任务表为什么??。
如何使模型链接到特定的表。
我的模型类代码是这样的
namespace App;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
//
}
答案 0 :(得分:4)
您应该为表tasks
命名,这是最佳选择。
解决此问题的另一种方法是使用$table
property:
protected $table = 'task';
请注意,我们没有告诉Eloquent我们的Flight模型使用哪个表。按照惯例,“蛇案例”,类的复数名称将用作表名,除非明确指定了其他名称。因此,在这种情况下,Eloquent将假设Flight模型将记录存储在航班表中。您可以通过在模型上定义表属性来指定自定义表
答案 1 :(得分:2)
默认情况下,表名是类名的复数。如果您希望它指向不同的表,那么在您的模型中添加
protected $table = 'task';
答案 2 :(得分:1)
默认情况下,laravel将模型名称复数化为表名,除非在模型中另有说明。
protected $table = 'task';