Call to undefined method Nette\Mail\Message::send()

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kasiopia
Člen | 69
+
-3
-

Dobrý deň pri odoslani mi hlasilo túto chybu, ďakujem za pomoc

protected function createComponentContactForms() {
$form = new UI\Form();
$form->addText(„meno“, „Meno:“, „15“, „15“)
->addRule(UI\Form::FILLED, „Vyplnte Vase meno“);
$form->addText(„email“, „E-mail:“)
->setEmptyValue(„@“)
->addRule(UI\Form::FILLED, „Vyplnte email!“)
->addRule($form::EMAIL, „Nespravny format emailu!“);

$form->addTextArea(„sprava“, „Sprava:“, 55, 10)
->addRule(UI\Form::FILLED, „Vyplnte spravu“);

$form->addSubmit(„create“, „Odoslat“);

$form->onSuccess[] = callback($this, „contactFormSubmitted“);
return $form;
}

public function contactFormSubmitted(Form $form) {
try {
$this->sendMail($form->getValues());
$this->flashMessage(„Kontaktny formular uspesne odoslany!“);
$this->redirect(„this“);
} catch (\Nette\InvalidStateException $e) {
$form->addError(„Chyba pri odosielani prosim vyskusajte neskor.“);
}
}

private function sendMail($values) {
$mail = new Message;
$mail->setSubject(„Nova sprava ");
$mail->setFrom($values["email“], $values[„meno“]);
$mail->addTo("design@solydesign.info");
$mail->send();
}

David Matějka
Moderator | 6445
+
+3
-
  1. zformatuj kod
  2. nevolej send() na mailu, vyzadej si IMailer pomoci DI
CZechBoY
Člen | 3608
+
+1
-

Vyzadej si Nette\Mail\IMailer a pres to tu zpravu posli.

/**
 * @var \Nette\Mail\IMailer
 * @inject
 */
public $mailer;

public function sendMail (..)
{
    ...
    $this->mailer->send($mail);
}
kasiopia
Člen | 69
+
-3
-

Dobrý deň teraz mi hlasi Call to a member function send() on null
Veľmi pekne dakujem
use Nette\Mail\IMailer;

public $mailer;
private function sendMail($values) {
$mail = new Message;
$mail->setSubject(‚Nova sprava‘);
$mail->setFrom($values[‚email‘], $values[‚meno‘]);
$mail->addTo('design@solydesign.info');
$this->mailer->send($mail);
}
}

Mysteria
Člen | 797
+
+1
-

Ten kód se nedá číst, obaluj to prosím správně tagama pro formátování kódu.

Hláška je jasná, $mailer máš NULL. Přepiš $public $mailer na

/** @var \Nette\Mail\IMailer @inject */
public $mailer;

jak ti bylo řečeno nahoře.

kasiopia
Člen | 69
+
0
-

Prosím ťa môžeš mi to vysvetliť na zdrojovom kode ako obalovať spravne tagama. Ďakujem

CZechBoY
Člen | 3608
+
0
-

Uz ti to funguje?

Php kod se zvyraznuje pomoci
/--php
Kod
\--

kasiopia
Člen | 69
+
-8
-

nie ešte nie hlasi mi tu istú spravu Call to a member function send() on null pri odoslani formulára môžeš mi povedať kde je chyba v $this->mailer->send($mail); Ďakujem

public $mailer;
private function sendMail($values) {
$mail = new Message;
$mail->setSubject(‚Nova sprava‘);
$mail->setFrom($values[‚email‘], $values[‚meno‘]);
$mail->addTo('design@solydesign.info');
$this->mailer->send($mail);
}

chemix
Nette Core | 1310
+
+2
-

@kasiopia Ahoj, pokud chces aby po tobe nekdo cetl kod, tak mu prosim nehaz klacky pod nohy. Dole pod textareou je napoveda jak snadno formatovat kod.


K tvemu problemu, cetl jsi quick start? Rouzmel jsi vsemu co se tam pise? Vse ti fungovalo jak melo?

Jelikoz vyse zmineny zapis, vcetne anotace (dvou ** na zacatku) je nutny aby to fungovalo. Jedna se o jeden ze zpusobu predavani zavyslosti do presenteru.

<?php
  /** @var \Nette\Mail\IMailer @inject */
  public $mailer;

?>
kasiopia
Člen | 69
+
0
-

Ďakujem za pomoc

kasiopia
Člen | 69
+
-7
-

Dobrý deň teraz mi to ide ale neprichádza mi email, prosím o radu.Ďakujem

protected function createComponentContactForms() {
$form = new UI\Form();
$form->addText(‚meno‘, ‚Meno:‘, ‚15‘, ‚15‘)
->addRule(UI\Form::FILLED, ‚Vyplnte Vase meno‘);
$form->addText(‚email‘, ‚E-mail:‘)
->setEmptyValue(‚@‘)
->addRule(UI\Form::FILLED, ‚Vyplnte email!‘)
->addRule($form::EMAIL, ‚Nespravny format emailu!‘);

$form->addTextArea(‚sprava‘, ‚Sprava:‘, 55, 10)
->addRule(UI\Form::FILLED, ‚Vyplnte spravu‘);

$form->addSubmit(‚create‘, ‚Odoslat‘);

$form->onSuccess[] = callback($this, ‚contactFormSubmitted‘);
return $form;
}

public function contactFormSubmitted(Form $form) {
try {
$this->sendMail($form->getValues());
$this->flashMessage(‚Kontaktny formular uspesne odoslany!‘);
$this->redirect(‚this‘);
} catch (\Nette\InvalidStateException $e) {
$form->addError(‚Chyba pri odosielani prosim vyskusajte neskor.‘);
}
}
/** @var \Nette\Mail\IMailer @inject */
public $mailer;
private function sendMail($values) {
$mail = new Message;
$mail->setSubject(‚Nova sprava‘);
$mail->setFrom($values[‚email‘], $values[‚meno‘]);
$mail->addTo('urobweb@gmail.com');
$this->mailer->send($mail);
}

David Matějka
Moderator | 6445
+
+1
-

uz nekolikrat ti bylo receno, at si naformatujes kod!

kasiopia
Člen | 69
+
0
-

Prepáč ale neviem ako formatovať kod môžeš mi prosím ťa ukazať na nete som našiel tagy, ďakujem som začiatočník

David Matějka
Moderator | 6445
+
+1
-

tak si precti znovu tohle tema. mas tady navod/odkaz hned 3×

Marsme
Člen | 75
+
0
-

kasiopia jde o to že kód naformátuj tady na fóru. Nedá se to tu číst. Použij tady v odpovědi tagy <?php ?> nebo tlačítko php nad políčkem pro zadání odpovědi.

Například Takto
	/--php
	Sem zkopíruj tvůj kód z editoru.
	\--

Editoval Marsme (21. 1. 2016 12:38)

kasiopia
Člen | 69
+
0
-

Ďakujem za pomoc aj ked som trocha nechápavý ale začínam, ešte raz vďaka

protected function createComponentContactForms() {
$form = new UI\Form();
$form->addText('meno', 'Meno:', '15', '15')
->addRule(UI\Form::FILLED, 'Vyplnte Vase meno');
$form->addText('email', 'E-mail:')
->setEmptyValue('@')
->addRule(UI\Form::FILLED, 'Vyplnte email!')
->addRule($form::EMAIL, 'Nespravny format emailu!');

$form->addTextArea('sprava', 'Sprava:', 55, 10)
->addRule(UI\Form::FILLED, 'Vyplnte spravu');

$form->addSubmit('create', 'Odoslat');

$form->onSuccess[] = callback($this, 'contactFormSubmitted');
return $form;
}

public function contactFormSubmitted(Form $form) {
try {
$this->sendMail($form->getValues());
$this->flashMessage('Kontaktny formular uspesne odoslany!');
$this->redirect('this');
} catch (\Nette\InvalidStateException $e) {
$form->addError('Chyba pri odosielani prosim vyskusajte neskor.');
}
}

/** @var \Nette\Mail\IMailer @inject */
  public $mailer;
private function sendMail($values) {
$mail = new Message;
$mail->setSubject('Nova sprava');
$mail->setFrom($values['email'], $values['meno']);
$mail->addTo('urobweb@gmail.com');
$this->mailer->send($mail);
}
CZechBoY
Člen | 3608
+
0
-

Posli error hlasku jestli to nejakou ukaze. Kdyztak mrkni do slozky log, jestli to neco nevygenerovalo.
Zkousis to na localhostu nebo nekde na hostingu?

kasiopia
Člen | 69
+
0
-

Skusim to dať na hosting ďakujem

kasiopia
Člen | 69
+
0
-

Čo mam upraviť aby sa môj projekt z localhostu načíta na hostingu.Ďakujem za odpoved

CZechBoY
Člen | 3608
+
0
-

Posli error hlasku.
Zapni si development rezim v bootstrap.php

kasiopia
Člen | 69
+
-3
-

a kde mám uvidiet v logu zaznam pretože sú tam len súbory web.config a .htaccess

Hurass
Člen | 114
+
0
-

Zkus si přečíst ještě jednou tento příspěvek a odpovědět na otázky, které tam jsou.

CZechBoY
Člen | 3608
+
0
-

OK, tak tam žádnej error log není, nebo máš špatně nastavená práva.

Co se stane, když se pokusíš přejít na tvoji stránku na hostingu? Nějaké error hlášky, bílá stránka, error 500, nebo něco jiného?

Michal Hlávka
Člen | 190
+
0
-

@CZechBoY já si myslím, že teď je problém, jak dát stránku na hosting

kasiopia
Člen | 69
+
0
-

Súbory som preniesol cez ftp ale vypisuje že nemám prava ale všetky zložky by mali mať 755
ved pozrite sami http://www.nette.solydesign.info/

CZechBoY
Člen | 3608
+
0
-

Kam směřuje ten adresář? Do složky www?

kasiopia
Člen | 69
+
0
-

na localhostu mi to islo do www

CZechBoY
Člen | 3608
+
0
-

A na hostingu?
Nahral si adresarovou strukturu stejne jako si mel na localhostu?

Muzes poslat screen z korenovy slozky kam smeruje ta subdomena?

CZechBoY
Člen | 3608
+
0
-

Pokud prejdes do slozky www ve webovym prohlizeci tak se ti ukaze Homepage.

kasiopia
Člen | 69
+
0
-

Ďakujem pekne