Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#2 Веб-разработка » Ajax » 20.08.2018 09:06:13

Feonixx_89
Ответов: 2

(Laravel 5.6)Здравствуйте подскажите что у меня не так пожалуйста? Вместо того чтобы в консоли получить результат введенный в поле ввода у меня чистая консоль но на экране это число через echo выводится?
есть view:

@extends('layouts.app')

@section('content')
	<form id="contactform" method="POST" class="validateform">
		{{ csrf_field() }}
		<div id="sendmessage">
			Ваше сообщение отправлено!
		</div>
		<div id="senderror">
			При отправке произошла ошибка!
		</div>
		<div class="row">
			<div class="col-lg-4 field">
				<input type="text" name="name" placeholder="Введите имя">
			</div>
			<div class="col-lg-12 margintop10 field">
				<p>
					<button class="btn btn-primary margintop10 pull-left" type="submit">Отправить</button>
					<span class="pull-right margintop20">Заполните поля</span>
				</p>				
			</div>
		</div>
	</form> 		
	</script>
	<script type="text/javascript">
		$(document).ready(function() {
			$('#contactform'), on('submit', function(e){
				e.preventDefault();
				$.ajax({
					type: 'POST',
					url: {{ route("welcome") }},
					data: $('#contactform').serialize(),
					success: function(result){
						alert(result);
					};
				});
			});
		});
	</script>
@endsection

Controller

<?php

namespace App\Http\Controllers\Ajax;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ContactController extends Controller
{
    public function send(Request $request)
    {
    	 echo "$request->name";
    }

    public function index() {
    	return view('welcome');
    }
}

Route

<?php

namespace App\Http\Controllers\Ajax;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class ContactController extends Controller
{
    public function send(Request $request)
    {
    	 echo "$request->name";
    }

    public function index() {
    	return view('welcome');
    }
}

#3 Re: Веб-разработка » Сравнение массивов в контроллере и передача во view » 28.06.2018 15:55:17

Большое спасибо за помощь! А по поводу архитектуры обязательно буду переделывать потому, что ощущение, что я нарушил все, что мог у меня самого горит огнем smile

#4 Re: Веб-разработка » Сравнение массивов в контроллере и передача во view » 28.06.2018 15:11:01

вот такой результат получается :

array:2215 [▼
  0 => ExchangeController {#2422 ▼
    #middleware: []
    #validatesRequestErrorBag: null
    +"ProdID": {#2425 …3}
  }
  1 => ExchangeController {#2421 ▼
    #middleware: []
    #validatesRequestErrorBag: null
    +"ProdID": {#2425 …3}
  }
  2 => ExchangeController {#200 ▼
    #middleware: []
    #validatesRequestErrorBag: null
    +"ProdID": {#2425 …3}

если делаю следующее

$arr1 = array();
    foreach($systemCentr as $o){
        $arr1[] = $o->ProdID0;
        };
        
$arr2 = array();
    foreach($mySystemCentr as $v){
        $arr2[] = $v->product_id;
    };
    

$arr_int = array_diff($arr1, $arr2);

$arr_res = array();
    foreach($arr_int as $post){
        $o = new ExchangeController();     
        $o->ProdID=$v;
        $arr_res[]=$o;
    };
dd($arr_res);

Правильно ли это и что мне делать дальше чтобы записать это в БД и вывести на вьюху?

#6 Веб-разработка » Сравнение массивов в контроллере и передача во view » 27.06.2018 13:36:06

Feonixx_89
Ответов: 5

Здравствуйте, объясните пожалуйста, что я делаю не так.
Мне нужно сравнить 2 массива и получить данные, которых нет во втором массиве.
Воспользовался информацией c форума по ссылке https://php.ru/manual/function.array-diff.html
На моем примере получается следующее:

$arr1 = (array)$systemCentr;
        $arr2 = (array)$mySystemCentr;
        $total = array_diff($arr1, $arr2);

Перед этим я проверил, что

dd($arr1)

выводит

array:2194 [▼
  0 => {#199 ▼
    +"DisplayName0": " Update for Microsoft Office 2007 (KB2508958)"
    +"Publisher0": null
    +"ProdID0": "{########-####-####-####-############}_SharePointDesigner_{########-####-####-####-############}"
  }
  1 => {#201 ▼
    +"DisplayName0": "«Òàêñêîì-Ìàñòåð âûïóñêà ñåðòèôèêàòîâ x86»"
    +"Publisher0": "ÎÎÎ Òàêñêîì"
    +"ProdID0": "{########-####-####-####-############}"

затем проверил

dd($arr2)

и получил

array:2 [▼
  0 => {#2399 ▼
    +"display_name": "ÎÎÎ Òàêñêîì"
    +"product_id": "{########-####-####-####-############}"
    +"publisher": "«Òàêñêîì-Ìàñòåð âûïóñêà ñåðòèôèêàòîâ x86»"
  }
  1 => {#2401 ▼
    +"display_name": "Update for Microsoft Office 2007 (KB2508958)"
    +"product_id": "{########-####-####-####-############}_SharePointDesigner_{########-####-####-####-############}"
    +"publisher": null
  }
]

после проверки применяю

$total = array_diff($arr1, $arr2);

и получаю ошибку -
(1/1)FatalErrorException
Object of class stdClass could not be converted to string -
Объект класса stdClass не может быть преобразован в строку

объясните пожалуйста кто-нибудь из-за чего такое происходит?

#7 Веб-разработка » Как записать в БД данные из массива, полученного php скриптом? » 14.06.2018 10:03:45

Feonixx_89
Ответов: 1

Здравствуйте, прошу помощи. Ситуация следующая.
Есть скрипт, обращающийся к удаленной БД, который получает ассоциативный массив данных ( таблица уникальных значений: 3 столбца 2500 строк - проверил в консоли работает ). Я его расположил в папке public приложения. Как мне обратиться к нему через Laravel ( я так понимаю по url ) и записать в свою БД.
Если можно на простом примере. Заранее благодарен.

Laravel 5.4
MSSQL server 2008
PHP 5.6.4

#8 Re: Веб-разработка » Laravel 5.4 подключение к бд mssql » 30.05.2018 12:26:12

Проблема разрешилась путем установки "неофициального драйвера" для PHP., т.е. как я понял есть версия 3.0 и версия 2.0. в моем случае одна версия работает с php 5.6.4 но не работает помоему c win server 2008, а другая как раз с ОС работает но версия php не подходит. Нашел версию неоф. драйвера объединяющего в себе эти 2 особенности и это  решило проблему. Подключение прошло по sqlsrv. единственное после этого нужно завести в DATA Source (ODBC) учетную запись system DSN и дать доступ этой роли к бд в которой будем работать.

#9 Веб-разработка » Написание триггера » 30.05.2018 11:34:29

Feonixx_89
Ответов: 0

Всем доброго времени суток! Подскажите как мне можно реализовать хранение изменений в БД MSSQL используя Laravel 5.4.
   Например:
   есть таблица "Model(Модель)" - "id", "name(наименование)";
   есть таблица "Сhange_of_model(Изменение модели)" - "id", "old_id(id из таблицы Model)", "who_changed(кто изменил)", "when_changed(когда изменил)","type_of_change(тип изменения-insert, create, delete)"

   Не понимаю как это организовать в Laravel. Может кто-нибудь сможет меня подтолкнуть в нужном направлении или поделиться ссылкой на ресурс, где это подробно объясняют на каком-нибудь живом примере.
   P.S. бегло просмотрел конструктор-запросов и Eloquent но мало что пока для себя понял.
   Создал в БД 2 таблицы и прописал это в файле миграции
   public function up()
    {
        DB::unprepared('
        CREATE TRIGGER 'Сhange_of_model_trigger'
            ON models
            AFTER INSERT
            AS
            INSERT INTO Сhange_of_model(old_id, who_changed, when_changed, type_changed, name)
            SELECT id, @uname, GETDATE(), 'insert', name
            FROM INSERTED');
    }
 
   --выдает ошибки и предчувствие, что это в корне не правильный подход к решению.

   Заранее большое спасибо

#10 Веб-разработка » Laravel 5.4 подключение к бд mssql » 28.05.2018 10:59:31

Feonixx_89
Ответов: 1

Здравствуйте, ищу помощи с настройкой поключения к бд mssql.
Имеется laravel 5.4 и mssql бд c odbc драйвером v.11
нашел в интернете настройку database.php:
'odbc' => [
        /* USE sql server as the driver, and set odbc settings (see below) */
        'driver' => 'sqlsrv',
        /* Tell laravel that you are using odbc */
        'odbc' => true,
        /* Set the ODBC data source, your previous dns */
        'odbc_datasource_name' => '{SQL Server}',
        /* There is no dsn config variable that I am aware of */ /*'dsn' => 'Driver={SQL Server};Server={serverName};Trusted_Connection=true;Database=meteor;', */ /* host is the server */
        'host' => '{###-###-#####\TEST_SQL_SERVER}',
        /*'DESKTOP-B9M4O7M\SQLEXPRESS',*/
        'database' => '###',
        'username' => '###',
        'password' => '###',
        'grammar' => [ 'query' => Illuminate\Database\Query\Grammars\SqlServerGrammar::class,
                       'schema' => Illuminate\Database\Schema\Grammars\SqlServerGrammar::class, ],
        ],

но при выполнении php artisan migrate вылетают ошибки
________________________________________________________________________________________________________
In connection.php line 647:
     SQLSTATE[IM002] SQLConnect: 0 [Micosoft][ODBC Driver Manager] Data source name not found and no default driver specified <SQL: select * from sysobject ts where type = 'U' and name = migrations>

________________________________________________________________________________________________________
In Connector.php line 68:
     SQLSTATE[IM002] SQLConnect: 0 [Micosoft][ODBC Driver Manager] Data source name not found and no default driver specified

________________________________________________________________________________________________________
Помогите может кто сталкивался.

#11 Re: Прочее » HTTP Error 500.19 - Internal Server Error » 28.05.2018 10:38:58

Проблема решилась установкой дома windows server 2008 r2;
разворачиванием на нем iis 7.5;
установкой на сервере laravel 5.4 через composer и переносом его на рабочий сервер архивом.
Единственное что осталось для меня небольшой загадкой это то
что при простом переносе ошибка 500 все равно проявляется, но
если запустить url rewrite и удалить потом role 1 и 2 то ошибка проходит и проект корректно открывается.

Всем спасибо за помощь.

#12 Re: Прочее » HTTP Error 500.19 - Internal Server Error » 25.05.2018 07:15:35

по поводу странности адреса так в iis указывается, т.е. какой порт укажешь такой и будет адрес
все что есть в логах это
#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2018-05-23 08:31:11
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2018-05-23 08:31:11 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 1
2018-05-23 08:45:53 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:45:53 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:32 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 4
2018-05-23 08:50:32 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 1
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 1
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 1
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:33 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:34 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2
2018-05-23 08:50:34 ::1 GET /public - 1992 - ::1 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+Trident/7.0;+rv:11.0)+like+Gecko 500 19 13 2

#13 Laravel » Laravel 5 на IIS 7.5 ошибка 500 » 24.05.2018 15:02:16

Feonixx_89
Ответов: 0

Краткая история. Имеется windows server 2008 r2 с установленным IIS 7.5 на нем работает sharepoint 2010 доступа в интернет на сервере нет.
Возникла необходимость развернуть проект на Laravel 5 и ссылаться на этот проект из SharePoint (это уже другая история).

По инструкциям в интернете установил php 7.2.5 из zip архива в С:\PHP , настроил php.ini и добавил его в PATH;

С гит хаба распаковал пустой проект laravel 5 и переместил его в inetpub\wwwroot\laravel;

Создал в IIS веб сайт показал где лежит проект, добавил роли безопасности, подключил *.php в общем все по инструкциям в интернете.

Тестовая страница test.php с phpinfo работает, а стартовая страница проекта выдает ошибку 500

через url rewrite сделал web.config и поместил в public

что еще я уже просто не понимаю ...

и да проект просто разархивировал получается без composera т.к. интернета нет влияет это или нет тоже не знаю.

Буду благодарен любой помощи, заранее спасибо огромное если не прошли мимо.

#14 Прочее » HTTP Error 500.19 - Internal Server Error » 23.05.2018 11:32:07

Feonixx_89
Ответов: 4

Развернули php 7.2.5 на iis7 сервере
перенесли рабочий проект на laravel 5.5.39 на сервер
при переходе в http://localhost:1992/public ошибка HTTP Error 500.19 - Internal Server Error
в чем может быть проблема, перерыл кучу информации.
буду признателен за любые подсказки

#15 Laravel » Вопросы по установке Laravel 5.4 (версия sql драйвера 11, php 5.6.36) » 17.05.2018 09:59:26

Feonixx_89
Ответов: 1

   Здравствуйте. Подскажите пожалуйста возможно ли развернуть laravel 5.4 c драйвером sql 11 версии?

   И вообще реально это сделать в моем случае если:
   
   Windows Server 2008 R2;
   SQL Client v.11
   IIS 7.0
   PHP 5.6.36
   
   Попробовать не имею возможности т.к. на сервере нет интернета и согласование на установку пакетов очень проблематично.
   Обновить драйвер нет возможности т.к. с ним завязан share point 2010 от которого мы и хотим потихоньку отойти.
   На сайте Laravel указано, что для работы нужно php >= 5.6.4 но на сайте php есть только 5.6.36 (Это одно и тоже и если нет где взять 5.6.4)

   Заранее огромное спасибо за отклики и помощь.

Подвал раздела