Следующее работает для меня на fre sh установке Laravel.
web. php
// define the route to function1
Route::get('/getData/{id}', 'MyController@function1');
MyController . php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MyController extends Controller
{
public function function1($id)
{
$data1 = 'abc';
$data2 = 'xyz';
/**
* Commented out as OP doesn't want function1 to call function2
* as is shown in original question
*/
// $this->function2($id, $data1, $data2);
return response()->json(array(
'data1' => $data1,
'data2' => $data2
));
}
public function function2($id, $data1, $data2)
{
// This will dump out the incoming data for you to view
ddd($id, $data1, $data2);
return response()->json(array(
'data1' => $data1,
'data2' => $data2
));
}
}
Обратите внимание, что если вы хотите вызвать function2
через URL-адрес, вам нужно будет определить для него маршрут, например:
Route::get('/getData/{id}/{data1}/{data2}', 'MyController@function2');
Редактировать 1
ОК. Итак, поскольку вы не хотите, чтобы function1
звонил function2
, я обновил свой ответ ($this->function2($id, $data1, $data2);
удален). function1
вернет ваши значения $data1
и $data2
в вашем ответе JSON. Извлеките их из ответа и используйте их, чтобы позвонить по номеру function2
.