SQLSTATE[42S02]: 未找到基础 table 或视图:1146 Table 'laravel_abonamenty2.currencies' 不存在
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_abonamenty2.currencies' doesn't exist
我遇到了这个错误
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_abonamenty2.currencies' doesn't exist (SQL: select `id`, `currency`, `course` from `currencies`)
这是我的控制器,它产生了错误。我不知道为什么 Laravel 正在搜索货币 table。我的 table 和迁移称为货币。
public function create()
{
$users = User::all('showname', 'id');
$forms = Form::all('id', 'form');
$currencys = Currency::all('id', 'currency', 'course');
return view('invoices.create')->with('users', $users, 'forms', 'currencys');
}
这是我的货币模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Currency extends Model
{
protected $fillable = [
'id', 'currency', 'course',
];
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
public function proform()
{
return $this->belongsTo('App\Proform');
}
}
这是我的货币迁移
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class Currencys extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('currencys', function (Blueprint $table) {
$table->increments('id');
$table->string('currency')->nullable();
$table->string('course')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('currencys');
}
}
By convention, the "snake case", plural name of the class will be used
as the table name unless another name is explicitly specified.
https://laravel.com/docs/7.x/eloquent#eloquent-model-conventions
在您的例子中,它将 Currency
(型号名称)转换为复数 currencies
。因此,如果您想要自定义 table 名称,
您需要在模型中指定 table 的名称。
货币模型
class Currency extends Model
{
protected $table="currency";
...
}
因为 currency
的复数形式是 currencies 而不是 currencies。 Laravel 自动检测模型的 snake case plural
名称的 table 名称。 documentation
在您的模型中,您可以指定另一个 table 名称,例如:
protected $table = 'currencys';
laravel 将搜索货币 table。
我遇到了这个错误
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_abonamenty2.currencies' doesn't exist (SQL: select `id`, `currency`, `course` from `currencies`)
这是我的控制器,它产生了错误。我不知道为什么 Laravel 正在搜索货币 table。我的 table 和迁移称为货币。
public function create()
{
$users = User::all('showname', 'id');
$forms = Form::all('id', 'form');
$currencys = Currency::all('id', 'currency', 'course');
return view('invoices.create')->with('users', $users, 'forms', 'currencys');
}
这是我的货币模型:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Currency extends Model
{
protected $fillable = [
'id', 'currency', 'course',
];
public function invoice()
{
return $this->belongsTo('App\Invoice');
}
public function proform()
{
return $this->belongsTo('App\Proform');
}
}
这是我的货币迁移
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class Currencys extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('currencys', function (Blueprint $table) {
$table->increments('id');
$table->string('currency')->nullable();
$table->string('course')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('currencys');
}
}
By convention, the "snake case", plural name of the class will be used as the table name unless another name is explicitly specified. https://laravel.com/docs/7.x/eloquent#eloquent-model-conventions
在您的例子中,它将 Currency
(型号名称)转换为复数 currencies
。因此,如果您想要自定义 table 名称,
您需要在模型中指定 table 的名称。
货币模型
class Currency extends Model
{
protected $table="currency";
...
}
因为 currency
的复数形式是 currencies 而不是 currencies。 Laravel 自动检测模型的 snake case plural
名称的 table 名称。 documentation
在您的模型中,您可以指定另一个 table 名称,例如:
protected $table = 'currencys';
laravel 将搜索货币 table。