为了账号安全,请及时绑定邮箱和手机立即绑定

我想从控制器访问 Laravel Blade 文件的对象值

我想从控制器访问 Laravel Blade 文件的对象值

PHP
斯蒂芬大帝 2023-07-30 13:53:52
这是我的代码。我正在尝试访问bookName和bookAuthor。但变量是静态设置的。我不想将其更改为公开。但我想访问这些值。我该怎么做?<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class Book{    private $bookName;    private $bookAuthor;    public function __construct($name, $author)    {        $this->bookName = $name;        $this->bookAuthor = $author;    }    public function getNameAndAuthor()    {        return $this->bookName . ' - ' . $this->bookAuthor;    }}class BookFactory{    public static function create($name, $author)    {        return new Book($name, $author);    }}class FactoryController extends Controller{    public function index()    {        $book1 = BookFactory::create('Laravel', 'Imrul');        $book2 = BookFactory::create('ReactJS', 'Hasan');        $book1->getNameAndAuthor();        $book2->getNameAndAuthor();        // dump($book1);        // dd($book1);        return view('home', compact(['book1', 'book2']));    }}home.blade.php<h3>{{ $book1->bookName }}</h3><h3>{{ $book1->bookAuthor }}</h3>
查看完整描述

2 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

我建议您创建一个模型: php artisan make:model Book -a,其中 -a 将为您创建除模型之外的迁移和控制器。


在您的迁移中:


public function up()

{

    Schema::table('books', function (Blueprint $table) {

        $table->increments('id');

        $table->string('author');

        $table->string('title');

    });

}

在你的模型上:


class Book extends Model

{

   protected $table = 'books';


   protected $fillable = [

   'author', 'title'

];



}

在您的控制器上:


public function create()

{

    $book1 = Book::create([

        'author' => 'Henry',

        'title' => 'Smith',

    ]);

    $book2 = Book::create([

        'author' => 'Antony',

        'title' => 'Gjj',

    ]);

    return view('home', compact(['book1', 'book2']));


}

在你的刀片上:


 <h3>{{ $book1->title }}</h3>

 <h3>{{ $book1->author }}</h3>


查看完整回答
反对 回复 2023-07-30
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

class Book

{

    private $bookName;

    private $bookAuthor;


public function __construct($name, $author)

{

    $this->bookName = $name;

    $this->bookAuthor = $author;

}

public function getNameAndAuthor()

{

    return $this->bookName . ' - ' . $this->bookAuthor;

}


 public function getBookNameAttribute()

    {

        return $this->bookName;

    }

 public function getBookAuthorAttribute()

    {

        return  $this->bookAuthor;

    }


}

现在刀片中的代码应该可以工作:


<h3>{{ $book1->bookName }}</h3>

<h3>{{ $book1->bookAuthor }}</h3>


查看完整回答
反对 回复 2023-07-30
  • 2 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信