Call to undefined function trong lavarel
Xin chào mọi người. Hiên tại em đang trong quá trình tìm hiểu frameword lavarel 5. và đang bị lỗi "Call to undefined function"
Em khai báo một thư viện riêng như thế này: app/Function/function.php và khai báo luôn trong composer.json
rồi vào cmd cập nhật lại composer dumpaotoload.
Đến khi gọi hàm trong phần view bị bị báo lỗi là "Call to undefined function"
Đây là phần view:
Đây là phân controller:
Đây là phần function demo:
Cám ơn cả nhà đã giúp đỡ.Chúc mọi người ngày làm việc thật tốt
4 CÂU TRẢ LỜI
Có vẻ ko liên quan đến thông báo của Laravel, nhưng mà function khai báo có param, khi gọi lại không truyền param là chết rồi. Thử thêm param rồi làm theo hướng dẫn của mọi người ở trên xem.
Ngoài ra cách mình hay dùng là mình sẽ ko viết helper và cho vào autoload, mà mình viết class Helper, rồi chỗ nào cần sử dụng thì mình gọi class này với method tương ứng thôi.
Ví dụ thế này: Bạn thêm class mới tại app\Helpers\Hepler.php
<?php
namespace App\Helpers;
class Helper
{
public static function helper()
{
//Do something
}
}
Ngoài blade sẽ dùng thế này:
@php
\App\Helpers\Helper::helper()
@endphp
thank bạn nhé
Đây là vấn đề liên quan đến autoload thôi, không nhất thiết phải post nhiều ảnh controller với view như vậy. Bạn thử mở file /path/to/project/vendor/composer/autoload_files.php xem có thấy đường dẫn đến function.php không?
có nhé đường dẫn vẫn tồn tại vậy vấn đề là ơ đâu ta ???
- Tôi chưa thể đoán ra nguyên nhân do đâu vì những bước mà bạn làm nó không có "uẩn khúc" gì cả.
- Để hiểu vấn đề rõ ràng hơn, hay thêm dd(get_included_files()); trong một file controller chẳng hạn và chạy trên trình duyệt để biết chắc chắn rằng file function.php có được load không? Nếu nó chưa được load, tôi mới có thể nghĩ về việc debug Composer.
Bạn chạy lại lệnh dưới đây xem có được không:
composer dump-autoload
Vì sau mỗi lần add file vào autoload mình cần generate lại file autoload.php
để nó nạp file mới vào code.
đã thử vẫn chưa được nó thông báo như thế này
Nếu bạn đang dùng version <= 5.4 (?) thì có thể require file function.php
bên trong boostrap/autoload.php
, nếu file boostrap/autoload.php
không tồn tại (do framework sử dụng OPCache trong các phiên bản PHP mới hơn, nên file này hơi thừa) thì bạn thêm vào file composer.json
cũng ok.