通过路由从 Laravel 中的 MySQL 导出列时出错
Posted
技术标签:
【中文标题】通过路由从 Laravel 中的 MySQL 导出列时出错【英文标题】:Error while exporting the column from MySQL in Laravel through routing 【发布时间】:2020-07-16 19:29:22 【问题描述】:我有来自Github 的 Laravel 项目,我正在尝试将选定的列导出到 txt 文件。表名customers
,列名customer_contact_numbers
来自数据库khanoilsdb
这是我面临的错误: 我添加了一个新控制器和以下代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class CNController extends Controller
$customers = Customer::all();
$phoneNumbers = "Phone numbers \n";
foreach ($customers as $customer)
$content .= $customer->customer_contact_numbers;
$content .= "\n";
// file name to download
$fileName = "contact_numbers.txt";
// make a response, with the content, a 200 response code and the headers
return Response::make($content, 200, [
'Content-type' => 'text/plain',
'Content-Disposition' => sprintf('attachment; filename="%s"', $fileName),
'Content-Length' => sizeof($content)
];);
Web.php:
Route::get('/home', 'CNController');
还有按钮:
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href=" route('CNController') ">Export</a>
</div>
我想做的是,用户点击后,它会调用控制器方法并开始下载一个txt文件。
对不起,如果我不能正确解释,我是 Laravel 和 PHP 的新手。谢谢:)
【问题讨论】:
【参考方案1】:问题是你的类中没有函数。
你可以像这样添加一个新函数exportNumbers
:
class CNController
public function exportNumbers()
// Your code here
然后你必须编辑web.php
文件来调用这个函数:
Route::get('/home', 'CNController@exportNumbers');
【讨论】:
Drik,非常感谢。我收到此错误:throw new InvalidArgumentException("Route [$name] not defined.");
它说,Route [CNController] not defined.
in dashboard.blade.php
<a class="dropdown-item" href=" route('CNController') ">Export</a>
以上是关于通过路由从 Laravel 中的 MySQL 导出列时出错的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 使用 PhpOffice 导入导出 Excel
通过laravel中的javascript函数在路由中传递两个变量
通过删除 Laravel 中的多余字符,从斜杠分隔的 url 中提取参数值