在Laravel我有一个像这样的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use App\Dienstreise;
class DienstreiseController extends Controller
{
public static function store()
{
$dienstreise = new Dienstreise;
$dienstreise->user_id=1;
$dienstreise->start_ort = "Hamburg";
$dienstreise->ziel_ort = "Kassel";
$dienstreise->save();
return "OK";
}
}
我有一个该功能的路线,完全正常。 (因此数据库设置100%正确)
Route::get('/dienstreise', 'DienstreiseController@store');
但是现在我的公共文件夹中的文件夹中有一个文件,它也需要在控制器中访问该功能。 (我知道这听起来很奇怪,但该文件将从Dialogflow获取POST请求,因此该文件必须位于公共文件夹中,否则无法访问它)
该文件如下所示:
<?php
require __DIR__ . '/../../vendor/autoload.php';
use App\Http\Controllers\DienstreiseController;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\Model;
use App\Dienstreise;
$dr = DienstreiseController::store();
echo $dr;
?>
但是我得到500-HTTP-Error?日志:
PHP Fatal error: Uncaught Error: Call to a member function connection() on null in /app/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:1140
如果我用控制器中的$ dienstreise评论所有行...我得到“OK”,所以错误必须在那里......但为什么它适用于路线?我糊涂了。 我读到了关于取消注释“$ app-&gt; withEloquent();”在bootstrap / app.php中,但是没有这样的评论吗?