错误异常:间接修改重载属性 laravel
Posted
技术标签:
【中文标题】错误异常:间接修改重载属性 laravel【英文标题】:Error Exception: Indirect modification of overloaded property laravel 【发布时间】:2018-09-20 18:56:29 【问题描述】:我正在制作一个用于存储新版本应用程序的 API。这是我的代码:
public function saveNewVersion()
$artifact_url = Input::get('url');
$artifact_id = Input::get('id');
$artifact_name = Input::get('name');
$artifact_version = Input::get('version');
$urls = explode('/', $artifact_url);
//Exploding URL to dir
$app_dir = "";
for($i=5; $i<sizeof($urls); $i++)
$app_dir .= $urls[$i] . '/';
$app_dir .= $artifact_id;
//Checking if the artifact_id exists in the database
$app = Applications::where('app_dir', '=', $app_dir);
if (!$app->count())
//Save it as new application
$new_app = new Applications();
$new_app->application->name = $artifact_name;
$new_app->app_dir = $app_dir;
$new_app->save();
$app_id = Applications::where('app_dir', '=', $app_dir)->first()->id;
else
$app_id = $app->first()->id;
//Checking if the application name is not same as newrelic (Optional)
if ($app->first()->application_name != $artifact_name)
$app = $app->first();
$app->application_name = $artifact_name;
$app->save();
//check if the last version exists in the database
$version = Versions::where('application_id', '=', $app_id)->orderBy('id', 'desc');
$lastVersion = $version->first()->version_number;
if ($lastVersion != $artifact_version)
//check if the new version is exists before
$flag = 0;
$versions = Versions::where('application_id', '=', $app_id)->orderBy('id', 'desc')->get();
foreach ($versions as $item)
if ($item->version_number == $artifact_version)
$flag = 1;
break;
if (!$flag)
$version = new Versions();
$version->application_id = $app_id;
$version->version_number = $artifact_version;
$version->save();
echo 'Application' . $app_id . 'has been updated to version ' . $artifact_version;
当我使用 postman 调用 API 时,API 成功运行并存储了新版本的应用程序。但是当我使用 CURL 时。我得到了ErrorException: Indirect modification of overloaded property App\Applications::$application
,它指向我的$new_app->save()
代码。
我的代码有问题吗?还是邮递员中使用了一些参数使这个错误不可见?
【问题讨论】:
【参考方案1】:我在这里可能是错的,但看起来问题就在这里:
$new_app->application->name = $artifact_name;
我认为应该是:
$new_app->application_name = $artifact_name;
基于其他代码。
【讨论】:
以上是关于错误异常:间接修改重载属性 laravel的主要内容,如果未能解决你的问题,请参考以下文章