首页 > 解决方案 > 如何在 Laravel 中修复意外的 '->' (T_OBJECT_OPERATOR)"?

问题描述

我在 Laravel 中此代码的第 11 行收到错误消息:

语法错误,意外的 '->' (T_OBJECT_OPERATOR)

这是客户端控制器的代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Title as Title;

class ClientController extends Controller
{
    public function __construct( Title $titles) {
        $this->titles = titles->all();
    }

    public function di() {
        dd($this->titles);
    }
}

标题:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Title extends ReadOnlyBase
{
    protected $titles_array = ['Mr', 'Mrs', 'Ms', 'Dr', 'Mx'];
}

ReadOnlyBase:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ReadOnlyBase
{
    //
    protected $titles_array = [];

    public function all()
    {
        return $this->titles_array;
    }

    public function get( $id )
    {
        return $this->titles_array[$id];
    }
}

和 web.php:

Route::get('/di', 'ClientController@di');

我完全按照 Laravel 上的 lynda 课程编写代码,但出现错误。

标签: phplaravel

解决方案


你应该使用

public function __construct( Title $titles) {
    $this->titles = $titles->all();
}

代替

public function __construct( Title $titles) {
    $this->titles = titles->all();
}

推荐阅读