Php 如何使用Laravel将表单数据从一个视图提交到另一个视图
我对Laravel是个新手,我正试图弄清楚如何从一个视图向另一个视图提交数据。我试着在这里阅读一些其他类似的问题,并观看一些视频,但我仍然无法得到它。基本上我有3个提交按钮,传递的数据来自一个表单。我在我的控制器中设置了一个新路由和一个函数,但是我得到了一个错误:Php 如何使用Laravel将表单数据从一个视图提交到另一个视图,php,laravel,Php,Laravel,我对Laravel是个新手,我正试图弄清楚如何从一个视图向另一个视图提交数据。我试着在这里阅读一些其他类似的问题,并观看一些视频,但我仍然无法得到它。基本上我有3个提交按钮,传递的数据来自一个表单。我在我的控制器中设置了一个新路由和一个函数,但是我得到了一个错误:App\Http\Controllers\PagesController::CallAction()的声明应该与light\Routing\controller::CallAction($method,$parameters)兼容。然而
App\Http\Controllers\PagesController::CallAction()的声明应该与light\Routing\controller::CallAction($method,$parameters)
兼容。然而,我认为我遵循的是正确的格式
这是我的web.php:
Route::group(['middleware' => ['auth']], function() {
// CallCenter page
public function CallCenter() {
return view('Pages.CallCenter');
}
Route::post(
'/CallAction/', 'PagesController@CallAction'
);
});
Auth::routes();
我的页面控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PagesController extends Controller
{
// CallCenter page
public function CallCenter() {
return view('Pages.CallCenter');
}
// CallAction page
public function CallAction() {
return view('Pages.CallAction');
}
}
以及来自:
<form action="/CallAction" method="post">
@csrf
<table style="width:70%">
<tr>
<td width="33%">Date<BR>
<?php
date_default_timezone_set('America/Chicago');
echo date('m/d/y');
?>
</td>
<td width="33%">Time<BR>
<?php
date_default_timezone_set('America/Chicago');
echo date('h:i');
?>
</td>
<td width="33%">Campus<BR>
<select name="campus">
<option disabled selected value>-- Campus --</option>
<option value="XXX1"></option>
<option value="XXX2"></option>
<option value="XXX3"></option>
<option value="XXX4"></option>
<option value="XXX5"></option>
</select>
</td>
</tr>
<tr>
<td width="33%">Extension<BR>
<input name="extension" type="text" size="15">
</td>
<td width="33%">Name<BR>
<input name="customerName" type="text" size="40">
</td>
<td width="33%">Email<BR>
<input name="customerEmail" type="text" size="50">
</td>
</tr>
<tr>
<td colspan="3">Description<BR>
<textarea name="description" rows="2" cols="125"></textarea>
</td>
</tr>
<tr>
<td width="33%"><input type="submit" name="convert" value="Convert to Ticket"></td>
<td width="33%"><input type="submit" name="close" value="Close Issue"></td>
<td width="33%"><input type="submit" name="hold" value="Put Issue on Hold"></td>
</table>
</form>
@csrf
日期
时间
校园
--校园--
分机
名称
电子邮件
说明
问题:
问题是您的控制器正在扩展App\Http\Controllers\Controller
,这反过来又将抽象类illighte\Routing\Controller扩展为BaseController
。此BaseController
已经有一个名为callAction()的方法定义如下:
public function callAction($method, $parameters)
{
return call_user_func_array([$this, $method], $parameters);
}
因此,如果希望在控制器中有一个名为callAction()
的方法,则需要提供相同的接口并接受$method
和$parameters
数组
解决方案:
快速解决方案是将控制器方法CallAction()
重命名为与父类上的方法名称不冲突的名称。。。可能CallMyAction()
然后更新路由文件以匹配新名称
所以你做的一切都很好,你只是选择了一个已经在框架中其他地方定义的方法名称。你使用的是哪一版本的Laravel?最新版本5.7它总是很小的东西哈哈。我吓坏了,非常感谢你